限制动态填充的 CheckBoxList 中选中的复选框的数量
Limit Number of Checked CheckBoxes in Dynamically Populated CheckBoxList
我有一个从 SQL 服务器填充的 CheckBoxList:
<asp:CheckBoxList runat="server" ID="cblItems" DataSourceID="sqlItems"
DataTextField="Item" DataValueField="ID" RepeatLayout="Table"
RepeatDirection="Horizontal" RepeatColumns="2" />
这是由 SqlDataSource sqlItems
填充的(如您在 DataSourceID 字段中所见)。
我想做的是一次最多只允许选中两个复选框。我最初尝试使用 SelectedIndexChanged
处理程序,尽管我认为它可能行不通。
Protected Sub cblItems(sender As Object, e As EventArgs) Handles cblItems.SelectedIndexChanged
dim numSelected as Integer = 0
For Each li as ListItem in cblItems.Items
If li.selected then
numSelected = numSelected + 1
End If
Next
If numSelected = 2 then
MsgBox("Disable CheckBoxes Here")
End If
End Sub
如您所见,我从来没有达到禁用未选中复选框的地步,因为 SelectedIndexChanged
从未触发过。我怎样才能做到这一点?
您需要设置OnSelectedIndexChanged
和AutoPostBack="True"
:
<asp:CheckBoxList runat="server" ID="cblItems" DataSourceID="sqlItems"
DataTextField="Item" DataValueField="ID" RepeatLayout="Table"
RepeatDirection="Horizontal" RepeatColumns="2"
AutoPostBack="True" OnSelectedIndexChanged="cblItems"/>
我有一个从 SQL 服务器填充的 CheckBoxList:
<asp:CheckBoxList runat="server" ID="cblItems" DataSourceID="sqlItems"
DataTextField="Item" DataValueField="ID" RepeatLayout="Table"
RepeatDirection="Horizontal" RepeatColumns="2" />
这是由 SqlDataSource sqlItems
填充的(如您在 DataSourceID 字段中所见)。
我想做的是一次最多只允许选中两个复选框。我最初尝试使用 SelectedIndexChanged
处理程序,尽管我认为它可能行不通。
Protected Sub cblItems(sender As Object, e As EventArgs) Handles cblItems.SelectedIndexChanged
dim numSelected as Integer = 0
For Each li as ListItem in cblItems.Items
If li.selected then
numSelected = numSelected + 1
End If
Next
If numSelected = 2 then
MsgBox("Disable CheckBoxes Here")
End If
End Sub
如您所见,我从来没有达到禁用未选中复选框的地步,因为 SelectedIndexChanged
从未触发过。我怎样才能做到这一点?
您需要设置OnSelectedIndexChanged
和AutoPostBack="True"
:
<asp:CheckBoxList runat="server" ID="cblItems" DataSourceID="sqlItems"
DataTextField="Item" DataValueField="ID" RepeatLayout="Table"
RepeatDirection="Horizontal" RepeatColumns="2"
AutoPostBack="True" OnSelectedIndexChanged="cblItems"/>