如何检查我在 C# 中动态创建的复选框
本文关键字:动态 创建 复选框 何检查 检查 | 更新日期: 2023-09-27 18:30:17
这是我的代码。问题是我可以在 checbox1_checkedChanged() 中获取第一组复选框,但不能获得第二组复选框。 我做错了什么?
protected void CheckBox1_CheckedChanged(object sender, EventArgs e)
{
CheckBox checkthatBox= (CheckBox)sender;
if (checkthatBox.Checked)
{
for(int i=0; i<4; i++)
{
CheckBox ch = new CheckBox();
ch.ID = "ch" + i;
ch.Text = "site "+i;
ch.CssClass = "listItemWidth";
ch.AutoPostBack= true;
ch.ViewStateMode = System.Web.UI.ViewStateMode.Enabled;
ch.CheckedChanged += ch_CheckedChanged;
sitesPanel.Controls.Add(ch);
}
}
}
void ch_CheckedChanged(object sender, EventArgs e)
{
Response.Write("YO");
CheckBox checkthatBox = (CheckBox)sender;
if (checkthatBox.Checked)
{
for (int i = 0; i < 4; i++)
{
CheckBox ch = new CheckBox();
ch.ID = "dl" + i;
ch.Text = "Document Library " + i;
ch.CssClass = "listItemWidth";
ch.CheckedChanged += ch_CheckedChanged;
docLibPanel.Controls.Add(ch);
}
}
throw new NotImplementedException();
}
TRY 设置
EnableViewState=false
动态创建的控件
似乎第二组复选框是在页面生命周期的后期重新创建的。
如果您想在
Postback
之后访问它们或处理来自它们的事件,则应每次在 Page_Init
上创建动态控件。
有关详细信息,请参阅以下链接:http://msdn.microsoft.com/en-us/library/hbdfdyh7%28v=vs.100%29.aspx
在这里你可以看到同样的问题。