0

私は私のマークアップページでこれをします:

<asp:CheckBox runat="server" ID="sections" class="checkAll" />

@Raminsonのおかげで、checkall/uncheckallチェックボックスにjQueryを使用します。

次に、コードファイルにこれがあります:Me.sections.InputAttributes.Add( "Value"、 "Miracle Alley")

これは機能します。

私が今抱えている問題は、データベースからチェックボックスの値を動的に入力したいということです。

私はちょっと立ち往生しています。以下はそうするための私の試みです。

Imports System.Data.SqlClient
Partial Class _Default
    Inherits System.Web.UI.Page

    Private Sub Page_Load(ByVal sender As Object, 
                          ByVal e As System.EventArgs) Handles Me.Load
        If Not Page.IsPostBack Then
            Dim strSQL As String = "SELECT section FROM myTable"
            Dim connStr As String = 
              ConfigurationManager.ConnectionStrings("connstr").ConnectionString
            Dim conn As New SqlConnection(connStr)
            Dim cmd As New SqlCommand(strSQL, conn)
            Dim objReader As SqlDataReader

            objReader = cmd.ExecuteReader()
            '   |||||   Loop through the Reader to retrieve data    
            '   |||||   and set each checkbox to appropriate data from datasource
            While objReader.Read()
                With objReader
                    sections.Checked = .Item("section")
                End With
            End While
            Me.sessions.InputAttributes.Add("Value", "sections")
        End If
    End Sub
End Class

c#タグとvb.netタグの両方を選択して申し訳ありません。いずれかのフレーバーの助けをいただければ幸いです。

問題の1つは、このエラーが発生し続けることです。

入力文字列は、正しい形式ではありませんでした。 これはこの行にあります:

section.Checked = .Item( "section")

dbフィールドセクションの値をチェックボックスの値に割り当てようとしています

4

2 に答える 2

0

CheckBoxコントロールは、ユーザーがtrueまたはfalseの状態を切り替えることができるチェックボックスをWebフォームページに作成します。

--http://msdn.microsoft.com/en-us/library/4s78d0k1(v = vs.71 ).aspx

CheckBoxの代わりにCheckBoxListを使用することをお勧めします。

マークアップ:

<asp:CheckBox runat="server" ID="sections" CssClass="checkAll" />
<asp:CheckBoxList runat="server" ID="sect" CssClass="checkAll" >
</asp:CheckBoxList>        

コードビハインド:

    If Not Page.IsPostBack Then
        Dim strSQL As String = "SELECT section FROM myTable"
        Dim connStr As String = ConfigurationManager.ConnectionStrings("connstr").ConnectionString
        Dim conn As New SqlConnection(connStr)
        Dim cmd As New SqlCommand(strSQL, conn)
        Dim objReader As SqlDataReader

        objReader = cmd.ExecuteReader()
        '   |||||   Loop through the Reader to retrieve data    
        '   |||||   and set each checkbox to appropriate data from datasource
        While objReader.Read()
            With objReader
                Dim li As New ListItem(objReader(0).ToString())
                sect.Items.Add(li)
            End With
        End While

    End If

PS-

class="checkAll"値のペアを含めると警告が表示されます。

メッセージ1の検証(ASP.Net):属性'class'は要素'CheckBox'の有効な属性ではありません。

代わりにCssClassを使用してください。

更新(すべての機能のチェック/チェック解除の追加)

マークアップ:

<asp:Button runat="server" ID="btnCheck" Text="Check All" OnClick="btnCheck_Click" />
<asp:Button runat="server" ID="btnUncheck" Text="Uncheck All" OnClick="btnUncheck_Click" />

コードビハインド:

Protected Sub btnCheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnCheck.Click
    For Each listItem As ListItem In sect.Items
        listItem.Selected = True
    Next
End Sub

Protected Sub btnUncheck_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnUncheck.Click
    For Each listItem As ListItem In sect.Items
        listItem.Selected = False
    Next
End Sub

そして、これらを忘れないでください:

Protected WithEvents btnCheck As Button
Protected WithEvents btnUncheck As Button
于 2012-07-23T14:08:13.417 に答える
0

さて、セクション列はビット型であると仮定しますか?もしそうなら、リーダーオブジェクトのGetBoolean(0)メソッドを使用できますが、私はVBにあまり精通していませんが、c#に相当するものはsections.Checked = reader.GetBoolean(reader.GetOrdinal("section"));

お役に立てれば

于 2012-07-23T14:08:50.100 に答える