0

我有一个来自 Web 表单的 C# 方法,我想使用页面方法、Web 方法或可能的 jQuery 异步调用该方法,以避免回发到服务器。该方法调用其他方法并重建树视图并执行验证并设置一些其他值。下面是代码示例。

这样做的最简单方法是什么?如果可能,将不胜感激提供的任何代码示例。没有更新面板..

protected void btnSubmit_Click(object sender, ImageClickEventArgs e)
{


        if (ValidateSelection() == true)
        {
            int ProductID = Convert.ToInt32(grdGetProducts.SelectedValue.ToString());


            if (Convert.ToInt32(ddBetTypeID.SelectedItem.Value) != 2)
            {
                SubmitProduct(Convert.ToInt32(ddProductTypeID.SelectedItem.Value), currentWeek, Convert.ToInt32(ddProductID.SelectedItem.Value), Convert.ToInt32(ddValue.SelectedItem.Value), Convert.ToInt32(ddCost.SelectedItem.Value), ProductID);
            }


            if (Convert.ToInt32(ddProductTypeID.SelectedItem.Value) == 2)
            {

                int price;
                price= 1;
                //if 1 open side then part 2
                if (txtProductID.Text != "0" && txt2ProductID.Text == "0")
                {
                    price= 2;

                }


            if (ProductID > 2)
            {
                BuildTree(currentTime, Convert.ToInt32(ddProductID.SelectedItem.Value), currentProduct);

            }




        }


}
4

1 回答 1

2

如果没有更新面板,您肯定需要大量客户端 JavaScript。

我一直在用动态表做这样的事情,我做的第一件事就是隔离我的数据和我的显示。你应该从做同样的事情开始。

找出正在验证的数据以及如何在客户端上收集这些数据以发送到 Web 方法。然后,您需要编写客户端脚本来执行此收集和发布。使用客户端脚本发布后,在 ajax 调用的回调中,您需要在页面上进行渲染。如果没有更新面板,这一切都取决于您。

不使用更新面板的问题是您将不得不重新创建树视图结构或在客户端对其进行操作。这意味着替换所有元素及其事件处理程序。对于更复杂的 ASP 控件,这可能是一项非常艰巨的任务。

服务器需要发回以进行渲染的将是树需要的所有数据。你要弄清楚那是什么。

我之前已经动态渲染了gridviews,因为使用它们来创建复杂的样式很好。然后,只需根据我从服务器获得的数据,在客户端使用脚本创建行;我想你可以用树视图做类似的事情。

通过阅读encosia.com,我学到了很多关于 jQuery、ajax 和 ASP.NET 交互的知识。那个人是一个很好的资源。

于 2013-03-22T16:25:59.627 回答