如何在ASP.NET中禁用特定的CheckBoxList ListItem?

时间:2014-05-07 11:24:36

标签: asp.net checkboxlist

在我的网页中,有两个复选框列表。

<asp:CheckBoxList ID="chk1" runat="server" AutoPostBack="True" onselectedindexchanged="chk1_SelectedIndexChanged" >
    <asp:ListItem Value="1">1</asp:ListItem>
    <asp:ListItem Value="2">2</asp:ListItem>
</asp:CheckBoxList>

<asp:CheckBoxList ID="ch2" runat="server" AutoPostBack="True" >
    <asp:ListItem Value="3">3</asp:ListItem>
    <asp:ListItem Value="4">4</asp:ListItem>
</asp:CheckBoxList>

如果我在chk1中检查1,则应在chk2中禁用3,如果我在chk1中选中2,则应在chk4中禁用4。

2 个答案:

答案 0 :(得分:2)

试试这个,

protected void chk1_SelectedIndexChanged(object sender, EventArgs e)
{
   if(chk1.selectedIndex==0)
   {
      chk2.Items[0].enabled=false;
   }
    else if(chk1.selectedIndex==1)
   {
      chk2.Items[1].enabled=false;
   }
}

答案 1 :(得分:2)

请尝试使用以下代码段。

protected void chk1_SelectedIndexChanged(object sender, EventArgs e)
{
    foreach (ListItem item in chk1.Items)
    {
        switch (item.Value)
        {
            case "1":
                if (chk2.Items.FindByValue("3") != null && item.Selected == true)
                    chk2.Items.FindByValue("3").Enabled = false;
                else
                    chk2.Items.FindByValue("3").Enabled = true;
                break;
            case "2":
                if (chk2.Items.FindByValue("4") != null && item.Selected == true)
                    chk2.Items.FindByValue("4").Enabled = false;
                else
                    chk2.Items.FindByValue("4").Enabled = true;
                break;
            default:
                break;
        }
    }
}