[英]Checkbox Changed Event not firing for dynamically added control
我在頁面加載事件中動態地在我的jQuery手風琴控件中創建了一個3個復選框,我還將文本框的CheckedChanged事件關聯起來。 但事件根本沒有解雇。 我不確定這里發生了什么。 請幫我。 謝謝,感謝您的反饋。
我用來生成動態控件並關聯事件的代碼
protected void Page_Load(object sender, EventArgs e)
{
dvAccordion.Controls.Clear();
foreach (DataRow row in dataSetIP.Tables[0].Rows)
{
HtmlGenericControl tt= new HtmlGenericControl("H3");
HtmlAnchor anc= new HtmlAnchor();
HtmlGenericControl dvP= new HtmlGenericControl("DIV");
dvP.InnerHtml = row["LD"].ToString();
CheckBox chkTest = new CheckBox();
if (!Page.IsPostBack) chkTest .ID = "chk" + row["SD"].ToString();
else
{
string uniqueID = System.Guid.NewGuid().ToString().Substring(0, 5);
chkTest .ID = "chk" + uniqueID + row["SD"].ToString();
}
chkTest.Text = row["SD"].ToString();
chkTest.AutoPostBack = true;
chkTest.CheckedChanged += new EventHandler(chkTest _CheckedChanged);
chkTest.InputAttributes.Add("Value", row["ID"].ToString());
anc.Controls.Add(chkTest);
tt.Controls.Add(anc);
dvAccordion.Controls.Add(tt);
dvAccordion.Controls.Add(dvP);
}
}
但是CheckboxChanged事件沒有觸發。
這是一個添加控件,ViewState和一些生命周期的問題。 動態添加完全參與整個生命周期的控件是一個復雜的主題,如果沒有更多的上下文,最好閱讀真正理解動態控件系列。
在您的情況下,我認為您在ViewState初始化之后重新創建下一頁加載的控件,因此它不需要知道綁定時需要將調用排隊到綁定事件處理程序。
嘗試在Page_Init()
事件中添加控件Page_Init()
在Page_Load()
事件之前觸發)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.