也许我有一个大脑屁或什么东西,因为它看起来应该很简单,但是如何通过Ajax从另一个用户控件更新用户控件?通过AJAX从另一个用户控件更新用户控件
我有一个带两个用户控件的ASPX页面,当我触发一个服务器端事件时,我想刷新另一个网格,以便更新它的数据。
我正在使用Telerik控件,如果有帮助。第一个用户控件上的复选框事件会导致第二个用户控件中的RadGrid重新绑定(),并且我在两个用户控件中的ASPX页面和RadAjaxManagerProxy中都有RadAjaxManager。
也许我有一个大脑屁或什么东西,因为它看起来应该很简单,但是如何通过Ajax从另一个用户控件更新用户控件?通过AJAX从另一个用户控件更新用户控件
我有一个带两个用户控件的ASPX页面,当我触发一个服务器端事件时,我想刷新另一个网格,以便更新它的数据。
我正在使用Telerik控件,如果有帮助。第一个用户控件上的复选框事件会导致第二个用户控件中的RadGrid重新绑定(),并且我在两个用户控件中的ASPX页面和RadAjaxManagerProxy中都有RadAjaxManager。
首先对我来说Page.DataBind()
不适用于我。
我UserControl
// Declare a delegate
public delegate void save_CommandEventHandler();
//Event
save_CommandEventHandler SaveViewChanged public event;
// I run SaveViewChanged() from a click_button but it can run from anywhere
protected void save_Click (object sender, EventArgs e)
{
UpdateDataInDatabase();
SaveViewChanged();
}
宣布page.aspx.cs
代码
protected override void OnInit (EventArgs e)
{
base.OnInit (e);
// UserControle1 is the Id of your UserControl declared in Aspx Page
UserControle1.SaveViewChanged + =
New UserControle.save_CommandEventHandler
(Save_CommandEventHandler);
}
private void save_CommandEventHandler() {
// Reload the gridView gvExpence to see the change operated in the user control
gvExpence.DataSource =DataAcces.getAllCompanyExpence();
gvExpence.DataBind();
// update user control 2
usercontrol2.updateView();
}
异步回调将更新导致回发的控件以及其更新面板的任何父控件。如果您的数据网格没有被在浏览器中的事件发生后更新它会建议它的更新方法不会被调用
尝试调用DataGrid中的UpdatePanel的.update方法的复选框事件
你可以尝试使用ajaxRequest或ajaxRequestWithTarget AjaxManager的客户端方法发起ajax调用。有关这些方法的更多信息可以在Telerik的在线文档中找到:http://www.telerik.com/help/aspnet-ajax/ajxclientsideapi.html
你知道我在哪里可以看到这个实现的例子吗? – EdenMachine 2010-07-12 12:20:44