3

これは非常に基本的な質問であることは知っていますが、VB でこれを行う方法を見つけることができませんでした... オプションの 1 つに独自の値を入力するためのテキストボックスが含まれている CheckBoxList があります。そのため、チェックボックス (CheckBoxList の ListItem) がチェックされたときに、そのテキスト ボックスを有効にする必要があります。これはコード ビハインドです。特定の ListItem がチェックされているかどうかをテストするために、If ステートメントに何を入力すればよいかわかりません。

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

4 に答える 4

9

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イベント ハンドラに配置されます。

于 2011-01-07T20:05:35.567 に答える
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>
于 2011-01-07T21:22:04.267 に答える
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- プロパティを使用して、Textbox を有効にする必要があるかどうかを確認できます。

  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
于 2011-01-07T20:00:22.597 に答える