2010-07-10 134 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

相關問題