ASP.NET,VB:检查选中CheckBoxList的哪些项

时间:2011-01-07 19:44:02

标签: asp.net vb.net selecteditem checkboxlist listitem

我知道这是一个非常基本的问题,但我找不到如何在VB中执行此操作...我有一个CheckBoxList,其中一个选项包含一个文本框来填充您自己的值。因此,当我的复选框(CheckBoxList中的ListItem)被选中时,我需要启用该文本​​框。这是后面的代码,我不知道在我的If语句中放入什么来测试是否检查了某个ListItem。

Protected Sub CheckBoxList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxList1.SelectedIndexChanged
    If ___ Then
        txtelect.Enabled = True
    Else
        txtelect.Enabled = False
    End If
End Sub

4 个答案:

答案 0 :(得分:8)

您可以遍历CheckBoxList中的复选框,检查每个复选框以查看是否已选中。尝试这样的事情:

For Each li As ListItem In CheckBoxList1.Items
    If li.Value = "ValueOfInterest" Then
        'Ok, this is the CheckBox we care about to determine if the TextBox should be enabled... is the CheckBox checked?
        If li.Selected Then
            'Yes, it is! Enable TextBox
            MyTextBox.Enabled = True
        Else
            'It is not checked, disable TextBox
            MyTextBox.Enabled = False
        End If
    End If
Next

上面的代码将放在CheckBoxList的SelectedIndexChanged事件处理程序中。

答案 1 :(得分:0)

假设你的aspx看起来像这样:

    <asp:TextBox ID="txtelect" runat="server"></asp:TextBox>
    <asp:CheckBoxList id="CheckBoxList1" runat="server" autopostback="true" >
        <asp:ListItem  Text="enable TextBox" Value="0" Selected="True"></asp:ListItem>
        <asp:ListItem  Text="1" Value="1" ></asp:ListItem>
        <asp:ListItem  Text="2" Value="2" ></asp:ListItem>
        <asp:ListItem  Text="3" Value="3" ></asp:ListItem>
    </asp:CheckBoxList>

您可以使用ListItem的 - Selected属性来检查是否应启用文本框:

  Private Sub CheckBoxList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBoxList1.SelectedIndexChanged
        'use the index of the ListItem where the user can enable the TextBox(starts with 0)'
         txtelect.Enabled = CheckBoxList1.Items( 0 ).Selected
  End Sub

答案 2 :(得分:0)

我不这样做,效率很低。您只是为了启用或禁用文本框而点击服务器,您应该使用javascript。下面的代码会更好

 <asp:DataList ID="mylist" runat="server">
        <ItemTemplate>
            <input type="checkbox" id="chk<%#Container.ItemIndex %>" onclick="document.getElementById('txt<%#Container.ItemIndex %>').disabled=(!this.checked);" />
            <input type="text" id="txt<%#Container.ItemIndex %>" disabled="disabled" />
        </ItemTemplate>
    </asp:DataList>

答案 3 :(得分:0)

使用字符串获取它们的功能

Function ValueSelected(cbl As CheckBoxList, separator As String) As String
    Dim s As String = ""
    Dim cb As ListItem
    For Each cb In cbl.Items
        If cb.Selected Then
            s += cb.Text & separator
        end If
    Next
    s = s.Substring(0, s.Length - 1)
    Return s
End Function