如何使用gridview中的命令行检索选定的行值?

时间:2011-01-15 16:03:49

标签: asp.net vb.net

我在gridview中有一个按钮,其命令名称为“hold”,当我点击第一行的n按钮时,整个行值将转移到default2.aspx ...

如果我点击gridview第二行的保留按钮,那么第二行值将被转移到Default2.aspx,怎么做?

我正在使用它...但它总是传输第一行值,即使我选择第一行或中间行..在gridview ....

此代码中有什么问题?

Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
        For Each myRow As GridViewRow In GridView1.Rows
            'Find the checkbox
            Dim lab5 As Label = DirectCast(myRow.FindControl("Label5"), Label)
            If e.CommandName = "feedback" Then
                Me.Response.Redirect("~/view_feedback.aspx?" & "serv_code=" & lab5.Text.ToString)
            End If
        Next
    End Sub

2 个答案:

答案 0 :(得分:2)

...假设您回复整个页面而不使用ajax,只要您点击暂停按钮,就会触发GridView1_RowCommand

现在编写代码时,您正试图遍历所有行,并依次解析它们。 但是,如果您的命令名是Feedback,则重定向到第一行的view_feedback.aspx页面。第一行将是唯一一个处理过的行,因为您的重定向将当前Web请求的执行移动到新页面。

将行索引传递给CommandArgument属性中指定in this example的命令并使用它而不是循环遍历所有行(如果您只是在按钮点击时处理单行)。

答案 1 :(得分:0)

试试这段代码

 Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
     If e.CommandName = "feedback" Then
         Dim index As Integer = Convert.ToInt32(e.CommandArgument)
         Dim myRow As GridViewRow = GridView1.Rows(index)
         Dim lab5 As Label = DirectCast(myRow.FindControl("Label5"), Label)
         Me.Response.Redirect("~/view_feedback.aspx?" & "serv_code=" & lab5.Text.ToString)
     End If
 End Sub