我有一个来自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);
}
}
}
答案 0 :(得分:2)
如果没有更新面板,您肯定需要大量的客户端JavaScript。
我一直用动态表做这样的事情,我做的第一件事是隔离我的数据和显示器。你应该从做同样的事情开始。
确定要验证的数据以及如何在客户端上收集数据以发送到Web方法。然后,您需要编写客户端脚本来执行此收集和发布。使用客户端脚本发布后,在ajax调用的回调中,您需要在页面上进行呈现。没有更新面板,这就是你的全部。
您在不使用更新面板的情况下遇到的问题是您将不得不重新创建树视图结构或在客户端操作它。这意味着替换所有元素及其事件处理程序。对于更复杂的ASP控件,这可能是一项非常艰巨的任务。
服务器需要发送回来进行渲染的内容将是树所需的所有数据。你要弄清楚那是什么。
之前我已经动态渲染了网格视图,因为使用它们创建复杂的样式会很好。然后,根据我从服务器获取的数据,只需在客户端上使用脚本创建行;我想你可以用树视图做类似的事情。
通过阅读encosia.com,我学到了很多关于jQuery,ajax和ASP.NET交互的知识。那个人是一个很好的资源。