【发布时间】:2014-08-27 15:39:30
【问题描述】:
我有这个代码:
public void CreateCheckBox(int i)
{
foreach (ListItem item in listItems.Items)
{
CheckBox box = new CheckBox();
box.Enabled = true;
box.AutoPostBack = true;
box.EnableViewState = true;
box.ID = string.Format("Active_{0}", item.Value);
box.Text = "Active";
box.CssClass = "checkbox_format2";
if (chkSetAllActive.Checked)
{
box.Checked = true;
box.CheckedChanged += new EventHandler(CheckedChange);
}
else
{
box.Checked = false;
box.CheckedChanged += new EventHandler(CheckedChange);
}
PlaceHolder1.Controls.Add(box);
}
protected void CheckedChange(object sender, EventArgs e)
{
CheckBox x = (CheckBox)sender;
if (chkSetAllActive.Checked)
x.Checked = true;
else
x.Checked = false;
}
在PageLoad() 我称之为
CreateCheckBox(listItems.Items.Count);
我还有另一个复选框 (chkSetAllActive)。
问题:
当我点击这个复选框(chkSetAllActive.Checked = true)时,所有动态创建的复选框(活动)都被选中,但是当我想取消选中所有(chkSetAllActive.Checked = false)时,这个动态创建的复选框保持选中状态。我猜动态创建的控件存在一些问题。
如果有人有什么想法,我将不胜感激。
这里还有照片样本:
【问题讨论】:
-
为复选框
chkSetAllActive设置autoPostBacktrue