哼,好可爱的小问题!
您可以删除客户端点击,设置 autopostback = true,然后使用此代码:
Protected Sub CheckBoxList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CheckBoxList1.SelectedIndexChanged
' count number checked.
Dim CheckCount As Integer
For Each MyCheck As ListItem In CheckBoxList1.Items
If MyCheck.Selected Then
CheckCount += 1
End If
Next
If CheckCount = 2 Then
' disable all boxes except those checked
For Each MyCheck As ListItem In CheckBoxList1.Items
If Not MyCheck.Selected Then
MyCheck.Enabled = False
End If
Next
End If
If CheckCount < 2 Then
' enable all check boxes
For Each MyCheck As ListItem In CheckBoxList1.Items
MyCheck.Enabled = True
Next
End If
End Sub
编辑:
邮政编码有效。
我的标记是这样的:
<asp:CheckBoxList ID="CheckBoxList1" runat="server" TabStop="false" CellPadding="5"
CellSpacing="10" Width="420px" Font-Size="X-Large"
AutoPostBack="true"
>
<asp:ListItem Text="Texas NL 10/10" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
<asp:ListItem Text="Texas NL 25/25" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
<asp:ListItem Text="Texas 50/50" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
<asp:ListItem Text="Omaha PL 10/10" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
<asp:ListItem Text="Omaha PL 25/25" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
<asp:ListItem Text="Omaha PL 50/50" Value="" TabStop="false" TabIndex="-1"></asp:ListItem>
</asp:CheckBoxList>
所以我们右键单击复选框列表,显示复选框列表的属性,单击事件的闪电,
我们有这个:
现在我们有了代码存根,代码如下:
Protected Sub CheckBoxList1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CheckBoxList1.SelectedIndexChanged
' count number checked.
Dim CheckCount As Integer
For Each MyCheck As ListItem In CheckBoxList1.Items
If MyCheck.Selected Then
CheckCount += 1
End If
Next
If CheckCount = 2 Then
' disable all boxes except those checked
For Each MyCheck As ListItem In CheckBoxList1.Items
If Not MyCheck.Selected Then
MyCheck.Enabled = False
End If
Next
End If
If CheckCount < 2 Then
' enable all check boxes
For Each MyCheck As ListItem In CheckBoxList1.Items
MyCheck.Enabled = True
Next
End If
End Sub
您不必输入受保护的子 - VS 会为您创建并创建它。
我建议您创建空白的新测试网页 - 并尝试上述方法。
这是一个已发布的工作代码解决方案。
编辑2:
所以海报使用的是 c# - 所以我们需要用 c# 编写这段代码,而不是 vb.net。
此代码将作为 c# 工作:
protected void CheckBoxList1_SelectedIndexChanged(object sender, EventArgs e)
{
// count number checked.
int CheckCount = 0;
foreach (ListItem MyCheck in CheckBoxList1.Items)
{
if (MyCheck.Selected)
CheckCount++;
}
if (CheckCount == 2)
{
// disable all boxes except those checked
foreach (ListItem MyCheck in CheckBoxList1.Items)
if (!MyCheck.Selected)
MyCheck.Enabled = false;
}
if (CheckCount < 2)
{
foreach (ListItem MyCheck in CheckBoxList1.Items)
MyCheck.Enabled = true;
}
}