0
我有以下方式宣布为什么是始终CheckChanged处理复选框状态真
checkbox = new CheckBox();
checkbox.ID = "AreaGroup";
checkbox.AutoPostBack = true;
checkbox.CheckedChanged += new System.EventHandler(this.EHArea_Clicked);
我然后在代码下面的方法
void EHArea_Clicked(Object sender, EventArgs e)
{
foreach (RepeaterItem aItem in Repeater1.Items)
{
checkbox = (CheckBox)aItem.FindControl("TownCheckbox");
if (((CheckBox)sender).Checked)
{
checkbox.Checked = true;
}
else
{
checkbox.Checked = false;
}
}
}
声明EHArea_Clicked功能后面的复选框
我的问题是,
((CheckBox)sender).Checked
结果始终为true,无论如果我正在检查或取消选中复选框。有没有人有一个想法,为什么会发生这种情况?
我想你可能会遇到与“复选框”变量的范围问题。你正在重新分配:checkbox =(CheckBox)aItem.FindControl(“TownCheckbox”);你不应该重新分配复选框。 – zam664 2014-10-29 19:00:42
哪里动态创建AreaGroup CheckBox? – Win 2014-10-29 19:04:37
@ zam664我不认为是这样。与复选框变量相关的所有功能都可以正常工作。如果将if条件切换为!((CheckBox)sender)。检查它将始终正确执行else子句 – KHeaney 2014-10-29 19:05:14