当一个框取消选中另一个框时,CheckChanged事件不会触发

时间:2016-02-24 14:56:47

标签: c# asp.net checkbox

我在页面上有两个复选框:

<anthem:CheckBox ID="chk1"  Text="Include Deactivated Users" runat="server" AutoCallBack="true" OnCheckedChanged="chk1_CheckedChanged" />

<anthem:CheckBox ID="chk2" Text="Exclude Deactivated Users" runat="server"  AutoCallBack="true" OnCheckedChanged="chk2_CheckedChanged" />

CheckedChanged事件的代码隐藏:

protected void chk1_CheckedChanged(object sender, EventArgs e)
{
    //calls some random functions to check stuff

    lstUsers.UpdateAfterCallBack = true; //updates a checkboxlist 'lstUsers'
    chkAllUsers.UpdateAfterCallBack = true; //updates another checkbox
}

protected void chk2_CheckedChanged(object sender, EventArgs e)
{
    CheckBox box = (CheckBox)sender;
    if (box.Checked == true)
    {          
        chk1.Checked = !box.Checked;
    }
}

这是我想要的条件:

  1. chk1已经过检查。 chk2未经检查。然后检查chk2,这会导致chk1取消选中并触发它的事件。
  2. chk2已经过检查。 chk1未经检查。然后检查chk1,这会导致chk2取消选中并触发它的事件。
  3. 我现在只在1.工作,因为如果我开始工作,我可以完成第二项工作。我遇到的问题是,当选中chk2时,它会取消选中chk1,但chk1_CheckedChanged永远不会被解雇。

    检查/取消选中时,

    chk1_CheckedChanged会自行处理。

    奇怪的是,如果我检查,取消选中,然后检查chk2chk1_CheckedChanged被解雇但chk1永不改变,则chk2_CheckedChanged被解雇。

    我对这里究竟发生了什么感到困惑。

    我已经为两个checkboxes弄乱了AutoPostBack,因为这似乎是类似问题的解决方案,但也没有运气。

0 个答案:

没有答案