Как сохранить Selected ListItem от игнорирования других ListItems? - PullRequest
0 голосов
/ 16 августа 2011

Когда я запускаю код, указанный ниже, оператор If никогда не преобразуется в «True».Он всегда показывает «Assm» как SelectedItem, даже если я проверяю все флажки.

Итак, как я могу разрешить 'Assm' проверяться по умолчанию И чтобы код-код видел, что установлены другие флажки?

<asp:CheckBoxList ID="qualityChecks" runat="server" RepeatDirection="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

Ответы [ 3 ]

1 голос
/ 16 августа 2011

SelectedItem из CheckBoxList работает таким образом.
Что вы хотите сделать, так это перебрать элементы ListItems и посмотреть, проверены ли они.

For each li as ListItem in qualitychecks.items
  if li.checked and li.text = "Qual" then       
    'some code
  end if
next
0 голосов
/ 16 августа 2011

Попробуйте:

If qualityChecks.SelectedValue = "Qual" Then
    'Some Code
End If

Поскольку вы не указали значение для элементов списка, они принимают значение Text

0 голосов
/ 16 августа 2011

Попробуйте создать пустой CheckListBox:

    <asp:CheckBoxList ID="qualityChecks" runat="server" RepeatDirection="Horizontal" TabIndex="8">
    </asp:CheckBoxList>

и затем добавьте ListItems на 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
...