2010-07-10 38 views
1

也许我有一个大脑屁或什么东西,因为它看起来应该很简单,但是如何通过Ajax从另一个用户控件更新用户控件?通过AJAX从另一个用户控件更新用户控件

我有一个带两个用户控件的ASPX页面,当我触发一个服务器端事件时,我想刷新另一个网格,以便更新它的数据。

我正在使用Telerik控件,如果有帮助。第一个用户控件上的复选框事件会导致第二个用户控件中的RadGrid重新绑定(),并且我在两个用户控件中的ASPX页面和RadAjaxManagerProxy中都有RadAjaxManager。

回答

2

首先对我来说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(); 
} 
1

异步回调将更新导致回发的控件以及其更新面板的任何父控件。如果您的数据网格没有被在浏览器中的事件发生后更新它会建议它的更新方法不会被调用

尝试调用DataGrid中的UpdatePanel的.update方法的复选框事件

+0

你知道我在哪里可以看到这个实现的例子吗? – EdenMachine 2010-07-12 12:20:44

相关问题