也許我有一個大腦屁或什麼東西,因爲它看起來應該很簡單,但是如何通過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