0

ページの読み込み時に、UserId、serviceNo、前名、および姓が入力されたグリッドビューがあります。ページにはクエリ文字列 (NewTrain) である ID があり、これをさまざまなユーザー (UserId) と共に DB テーブルに一括挿入します。これは私がすでに行うことができ、機能します。ただし、今やりたいことは、GridView の行のみを挿入し、チェックボックスがオンになっていることです!

私はしばらくこれを試してきましたが、継続的に問題に遭遇しました。

2 つの異なるシナリオを試しましたが、同じ結果に遭遇しました

誰でも助けてもらえますか?

1.

    Protected Sub btnAttend_Click(ByVal sender As Object, ByVal e As EventArgs)

        Dim myTrain As String = Request.QueryString("NewTrainId")


        If myTrain IsNot Nothing Then
            Dim strQuery As String
            Dim cmd As SqlCommand


            For x As Integer = 0 To GridView1.Rows.Count - 1
                Dim chkBox As CheckBox = DirectCast(GridView1.Rows(x).FindControl("RowLevelCheckBox"), CheckBox)

                If chkBox.Checked Then
                    Dim lblUsr2 As HtmlInputHidden = CType(GridView1.Rows(x).FindControl("txtUsr"), HtmlInputHidden)
                    Dim userID As Guid = New Guid(lblUsr2.Value().ToString)
                    Dim HidTrainId As HtmlInputHidden = FindControlRecursive(MultiTabs, "txtTrainId")

                    strQuery = "Insert into userAssessmentTbl(tt_id, UserId)values(@NewTrainId, @UserId)"

                    cmd = New SqlCommand(strQuery)
                    cmd.Parameters.AddWithValue("@UserId", userID)
                    cmd.Parameters.AddWithValue("@NewTrainId", myTrain)

                    InsertUpdateData(cmd)


                End If

            Next
        End If


    End Sub

2.

Protected Sub btnAttend_Click(ByVal sender As Object, ByVal e As EventArgs)

        Dim myTrain As String = Request.QueryString("NewTrainId")


        If myTrain IsNot Nothing Then
            Dim strQuery As String
            Dim cmd As SqlCommand


            For Each rowItem As GridViewRow In GridView1.Rows


                Dim chkBox As CheckBox = DirectCast(rowItem.FindControl("RowLevelCheckBox"), CheckBox)
                If chkBox IsNot Nothing AndAlso chkBox.Checked Then

                    Dim lblUsr2 As HtmlInputHidden = CType(rowItem.FindControl("txtUsr"), HtmlInputHidden)
                    Dim userID As Guid = New Guid(lblUsr2.Value().ToString)
                    Dim HidTrainId As HtmlInputHidden = FindControlRecursive(MultiTabs, "txtTrainId")

                    strQuery = "Insert into userAssessmentTbl(tt_id, UserId)values(@NewTrainId, @UserId)"

                    cmd = New SqlCommand(strQuery)
                    cmd.Parameters.AddWithValue("@UserId", userID)
                    cmd.Parameters.AddWithValue("@NewTrainId", myTrain)

                    InsertUpdateData(cmd)

                End If

            Next
        End If


    End Sub
4

1 に答える 1

0

これは C# ですが、vb.net に変換できます。

            foreach ( ListItem li in your_ check_box_list.Items )
            {


                if (li.Selected == true)
                {
                    // execute code 
                }

            }

vb.netでこれが確実に機能するかどうかわからないことがわかりました:

For Each selecteditem As [Object] In Listbx.SelectedItems
//Your code on each item
Next
于 2012-12-21T18:44:26.557 に答える