我的问题是,在下面的代码中,SelectedRow属性不返回任何内容。我在运行时手动将项绑定到GridView,并且autogeneratecolumns和autogenerateselectbutton属性为true。
我认为问题在于单击“选择”命令时有一个PostBack。
非常感谢。
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Session("ContactID") = GridView1.SelectedRow.Cells(0).Text()
Response.Redirect("~/ContactAddress.aspx")
End Sub
答案 0 :(得分:0)
所选行位于GridViewCommandEventArgs参数中。
答案 1 :(得分:0)
您想要的行可通过e(GridViewCommandEventArgs参数)访问,特别是具有行索引的e.CommandArgument的值:
来自here:
确定行的索引 举起活动,使用 事件的CommandArgument属性 传递给事件的参数。 ButtonField类自动完成 填充CommandArgument属性 具有适当的索引值。对于 其他命令按钮,你必须 手动设置CommandArgument 命令按钮的属性。对于 例如,您可以设置 CommandArgument为<%# Container.DataItemIndex%>当。。。的时候 GridView控件没有分页 启用。
答案 2 :(得分:0)
除了添加CommandArgument之外,您还需要将代码更改为以下内容。
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
Dim rowNumber As Integer = e.CommandArgument
Dim ContactId As Integer = GridView1.Rows(rowNumber).Cells(0).Text
Session("ContactID") = ContactId
Response.Redirect("~/ContactAddress.aspx")
End Sub