When I run code the below, the If statement never resolves to 'True'. It always shows 'Assm' as the SelectedItem, even if I check all the checkboxes.
So how do I allow 'Assm' to be checked by default AND have the code-behind see that the other checkboxes are checked?
<asp:CheckBoxList ID="qualityChecks" runat="server" Repe开发者_如何学PythonatDirection="Horizontal" TabIndex="8">
<asp:ListItem Text="Assm" Selected="True"></asp:ListItem>
<asp:ListItem Text="Qual"></asp:ListItem>
<asp:ListItem Text="PMgr"></asp:ListItem>
<asp:ListItem Text="Plant"></asp:ListItem>
</asp:CheckBoxList>
If qualityChecks.SelectedItem.Text = "Qual" Then
'Some Code
End If
SelectedItem of a CheckBoxList works that way.
What you want to do is iterate through the ListItems and see if they are Checked.
For each li as ListItem in qualitychecks.items
if li.checked and li.text = "Qual" then
'some code
end if
next
Try creating an empty CheckListBox:
<asp:CheckBoxList ID="qualityChecks" runat="server" RepeatDirection="Horizontal" TabIndex="8">
</asp:CheckBoxList>
and than adding the ListItems on Page_Load
Protected Sub Page_Load(sender As Object, e As EventArgs)
Dim l1 As New ListItem()
Dim l2 As New ListItem()
Dim l3 As New ListItem()
Dim l4 As New ListItem()
l1.Text = "Assm"
l2.Text = "Qual"
l3.Text = "PMgr"
l4.Text = "Plant"
If Not Page.IsPostBack Then
l1.Selected = True
qualityChecks.Items.Add(l1)
qualityChecks.Items.Add(l2)
qualityChecks.Items.Add(l3)
qualityChecks.Items.Add(l4)
End If
End Sub
Try:
If qualityChecks.SelectedValue = "Qual" Then
'Some Code
End If
As you have specified no value for the list items, they take the value of the Text
精彩评论