我有一個用戶控件,當單擊按鈕時需要加載子控件。 麻煩的是它必須從另一個類請求控制。以編程方式在ASP.NET中添加用戶控件
所以在按鈕單擊事件,我調用該函數得到了我的控制,並把它添加到頁面,如下所示:
UserControl ctrl = ExampleDataProvider.GetControl(some params...);
myDetailPane.Controls.Add(ctrl);
的getControl方法訪問的樣子:
public static UserControl GetControl(some params...)
{
ExampleDetailPane ctrl = new ExampleDetailPane();
ctrl.Value = "12";
ctrl.Comment = string.Empty;
return ctrl;
}
由於頁面的生命週期,這不起作用 - 子控件的Page_Load被觸發並且其控件爲空。
我知道我的方法是錯誤的,爲什麼,但不知道最好的解決方法!誰能幫忙?
動態控件必須在每次回發時重新創建,這是關於如何保持動態控件及其狀態的好鏈接。 http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx – 2010-01-12 15:43:18
@Richard,+1,因爲這是使這項工作的唯一方法。你應該做出這個答案而不是評論。 – 2010-01-12 15:46:04