2010-09-13 92 views
0

我的问题是在下面的代码中,SelectedRow属性什么也没有返回。我在运行时手动将项目绑定到GridView,并且autogeneratecolumns和autogenerateselectbutton属性为true。GridView1.SelectedRow什么都不返回

我认为问题是关于单击Select命令时进行回发。

非常感谢。

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

你想要的行通过电子邮件访问(在GridViewCommandEventArgs参数),特别是e.CommandArgument的,这将有行索引值:

here

要确定的指标 引发事件的行,使用传递给事件的事件 参数的CommandArgument属性的 。 ButtonField类自动用 填充具有适当索引值的CommandArgument属性 。对于其他命令按钮 ,您必须手动设置CommandArgument 属性的命令按钮 。例如,对于 示例,当 GridView控件没有启用分页 时,可以将 CommandArgument设置为<%# Container.DataItemIndex%>。

+0

作为一个临时解决方案,我使用SelectedIndexChanged事件来获得我想要的,CommandArgument属性并没有真正的帮助。非常感谢。 – bileyazan 2010-09-15 06:51:55

0

所选行在GridViewCommandEventArgs参数中。

+0

那是对的,但是有什么问题呢? – bileyazan 2010-09-13 11:27:00

+0

该行尚未被选中。 – 2010-09-13 17:37:35

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