【发布时间】:2013-12-07 17:56:31
【问题描述】:
我在 aspx 文件中有这个复选框列表:
<asp:CheckBoxList ID="CBL_LOC" runat="server" RepeatDirection="Horizontal" AutoPostBack="True" Font-Size="Small" Font-Names="Calibri"> </asp:CheckBoxList>
项目根据用户之前的输入添加到代码隐藏中,如下所示:
L = New ListItem
L.Text = "ALL"
L.Value = "ALL"
L.Selected = True
CBL_LOC.Items.Add(L)
conn.ConnectionString = strConnString
conn.Open()
cmd = New SqlCommand(Sql, conn)
dr = cmd.ExecuteReader
While dr.Read
L = New ListItem
L.Text = dr(0)
L.Value = dr(0)
CBL_LOC.Items.Add(L)
L.Selected = True
End While
dr.Close()
cmd.Dispose()
conn.Close()
现在,当用户选中(或取消选中)“全部”复选框时,我正在尝试使用以下代码选中/取消选中所有项目:
Dim CBL As CheckBoxList = sender
If (CBL.SelectedValue = "ALL") Then
For Each I As ListItem In CBL_LOC.Items
I.Selected = CBL.Items(0).Selected
Next
End If
当 ALL 复选框从未选中变为选中时,这工作正常,SelectedValue 为“ALL”。但是当未选中“ALL”并且用户选中“ALL”时,SelectedValue 显示为第一个“选中”复选框的值,而不是“ALL”框。
我在这里遗漏了什么吗?是否有不同/更好的方法来确定复选框列表中的哪个复选框被选中或未选中?
【问题讨论】: