在ASP.NET GRIDVIEW中使用复选框检索选择的行



i有一个gridview,该浏览量在页面加载上带有UserId,serviceno,forename和姓氏。该页面具有一个ID,该ID是一个Querystring(NewTrain),我将其与不同的用户(用户ID)一起插入DB表中。我可以做到这一点。但是,我现在想做的是仅插入GridView的行是一个复选框!

我已经尝试了一段时间,并不断遇到问题。

我尝试了两个不同的场景,但遇到了相同的结果

有人可以帮忙吗?

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

这在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

最新更新