2010-09-13 140 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