我在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
答案 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