2017-04-14 15 views
1

私はいくつかのチェックボックスを持っていますが、私はテキスト "New Desktop"と "New Laptop"だけを2から選択することができます。2のうち1つのチェックボックスを選択してください

<asp:CheckBoxList ID="Service1" runat="server" 
        Width="251px" > 
       <%--onselectedindexchanged="checkBox1_CheckedChanged"--%> 
        <asp:ListItem text="New Login ID & Email Address" ></asp:ListItem> 
        <asp:ListItem text="New Desktop" Value="2" oncheckedchanged="checkBox1_CheckedChanged" ></asp:ListItem> 
        <asp:ListItem text="New Notebook" Value="3" oncheckedchanged="checkBox2_CheckedChanged"></asp:ListItem> 
        <asp:ListItem text="New Mouse"></asp:ListItem> 
        <asp:ListItem text="New Keyboard"></asp:ListItem> 
        <asp:ListItem text="New Printer"></asp:ListItem> 
       </asp:CheckBoxList> 


//.cs pages 
protected void checkBox1_CheckedChanged(object sender, EventArgs e) 
     { 
      if (Service1.Items[2].Selected == true) 
      { 
       Service1.Items[3].Enabled = false; 
      } 
     } 
protected void checkBox2_CheckedChanged(object sender, EventArgs e) 
     { 
      if (Service1.Items[3].Selected == true) 
      { 
       Service1.Items[2].Enabled = false; 
      } 
     } 
+0

多分これが助けることができる - 私はまだ私は本当にそれは書く方法を理解しないbegginerだからhttp://stackoverflow.com/a/10553349/6538824 –

+0

は、ジョルジありがとうございます。 – Johnny

+0

上記のコードは動作していませんか? –

答えて

1

私はあなたに以下の1つの例を挙げていますが、これは実現可能な方法ではないかもしれません。あなたは、あなたがそうでCheckBox2、CheckBox3とのために上記evevtを繰り返す必要

protected void CheckBox1_CheckedChanged(object sender, EventArgs e) 
{ 
    if(CheckBox1.Checked) 
    { 
      CheckBox2.Checked =false; 
      CheckBox3.Checked =false; 
      CheckBox4.Checked =false; 
     } 
} 

他のチェックボックスからチェックを削除するには、各チェックボックスのCheckedChangedイベントを追加する必要があります。あなたの要件に応じてそれを拡張することができます。

ただし、このシナリオでは、ASP.NETラジオボタンコントロールを使用することをお勧めします。ラジオボタンコントロールの詳細については、this linkを参照してください。

1

イベントをchengedサーバーと選択にあなたのコントロール送信要求が すなわち呼び出しされますので、あなたは=「真」のAutoPostBackとCheckBoxListのためOnSelectedIndexChangedイベントを使用することができます:「李」:デザイン

<asp:CheckBoxList ID="Service1" runat="server" Width="251px" AutoPostBack="True" OnSelectedIndexChanged="Service1_SelectedIndexChanged"> 
     <asp:ListItem Text="New Login ID & Email Address"></asp:ListItem> 
     <asp:ListItem Text="New Desktop" Value="2"></asp:ListItem> 
     <asp:ListItem Text="New Notebook" Value="3" ></asp:ListItem> 
     <asp:ListItem Text="New Mouse"></asp:ListItem> 
     <asp:ListItem Text="New Keyboard"></asp:ListItem> 
     <asp:ListItem Text="New Printer"></asp:ListItem> 
    </asp:CheckBoxList> 

と、コード内の場合選択したアイテムをすべて持っていて、あなたの要件に応じて "New Desktop"と "New Laptop"は2のうち1つだけを選択します。

protected void Service1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      CheckBoxList li = (CheckBoxList)sender; 
      foreach (ListItem l in li.Items) 
      { 
       if (l.Value == "2") 
       { 
        if (l.Selected) 
        { 
         Service1.Items[2].Enabled = false; 
        } 
        else 
        { 
         Service1.Items[2].Enabled = true; 
        } 

       } 
       else if (l.Value == "3") 
       { 
        if (l.Selected) 
        { 
         Service1.Items[1].Enabled = false; 
        } 
        else 
        { 
         Service1.Items[1].Enabled = true; 
        } 
       } 
      } 
     } 
関連する問題