Ограничить количество проверенных флажков в динамически заполненном CheckBoxList - PullRequest
0 голосов
/ 31 марта 2020

У меня есть CheckBoxList, который я заполняю с SQL Сервер:

<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 никогда не стрелял. Как мне этого добиться?

1 Ответ

1 голос
/ 31 марта 2020

Вам необходимо установить 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"/>
...