我在代碼隱藏(在Page_Load中)中創建了一些CheckboxList控件,它們被放入UpdatePanel中。 UpdatePanel設置爲UpdateMode =「always」,所以如果我理解正確的話,每個UpdatePanel內的Postback應該在整個UpdatePanel(這是我想要的)上觸發一個Postback。代碼隱藏創建的Checkboxlist不會在UpdatePanel中觸發OnSelectedIndexChanged
簡體ASPX的標記:
<asp:UpdatePanel ID="updatepanel_profiles_manualdata" runat="server">
<ContentTemplate>
<div id="cbl_container" runat="server">
</div>
</ContentTemplate>
</asp:UpdatePanel>
簡化後臺代碼:
protected void create_cbl(){
// this is called in Page_Load
CheckBoxList mycbl = new CheckBoxList();
mycbl.SelectedIndexChanged += new EventHandler(cbl_manual_clickEvent);
DataTable dt3 = get_cbl_data(someparameter);
mycbl.DataSource = dt3;
mycbl.DataTextField = "Title";
mycbl.DataValueField = "ID";
mycbl.AutoPostBack = true;
mycbl.DataBind();
//add the checkboxlist to the container-div in the aspx-markup
cbl_container.Controls.Add(mycbl);
}
protected void cbl_manual_clickEvent(object sender, EventArgs e){
// do something with this click...
}
鬥爭:
- 我試着設置一個斷點到我cbl_manual_clickEvent - 這是從來沒有到達,但頁面編譯沒有錯誤。
- 我有另一個CheckBoxList在同一個UpdatePanel中,在標記中初始化,因此OnSelectedIndex事件綁定在標記中。回傳在這裏工作得很好。不過,我需要從代碼隱藏創建第二個CheckBoxList,因爲數量取決於數據庫中的一些數據。
- 我嘗試在UpdatePanel中設置ChildrenAsTriggers =「true」,以及更改UpdateMode並定義觸發器,但沒有任何運氣。
我錯過了什麼?預先感謝所有提示或建議......!
後你是如何調用該函數在Page_Load中 –
嘗試調用這個函數根據條件!IsPostBack –
是的,我打電話這個函數第一次在!Page.IsPostBack中除了一些在那裏創建的其他控件。 –