我遇到了我的動態加載控件事件的問題。動態加載控件的狀態問題
這裏是我正在加載控件:
protected void Page_Load(object sender, EventArgs e)
{
LoadSubPageEditTemplate();
}
protected void LoadSubPageEditTemplate()
{
pnlPageTemplate.Controls.Clear();
BaseOfferAdmin adminControl = (BaseOfferAdmin)this.LoadControl("~/Controls/SingleOfferAdmin.ascx");
if (adminControl != null)
{
adminControl.ID = "Control_ID"
pnlPageTemplate.Controls.Add(adminControl);
}
}
}
的LoadSubPageEditTemplate()也從頁面上的一個按鈕觸發的事件,因爲我有按鈕事件已被執行之後更新它。
控制加載完美,我已經測試了它與一個基本的按鈕和回發火災如預期。不過,我用CheckBox得到奇怪的結果。
<asp:CheckBox runat="server" ID="cbOptionalAction" Text="CheckBox" AutoPostBack="true" OnCheckedChanged="cbOptionalAction_CheckChanged" />
CheckedChanged事件只在複選框被選中時觸發,我猜這意味着我的控件viewstate存在一些問題。如果我在頁面上有多個複選框,並且創建了一個回發,則checkchanged的每個複選框都將觸發checkchanged事件。
謝謝任何人抽出一點時間幫助我!
Ignus
您是否試圖調用LoadSubPageEditTemplate();在Page_Init事件而不是Page_Load? Page_Init將被認爲是生成動態控件的最佳位置。您可能會發現這篇相關文章有幫助:http://www.singingeels.com/Articles/Dynamically_Created_Controls_in_ASPNET.aspx – kaushalparik27 2015-09-09 17:38:55