GridView1.SelectedRow ничего не возвращает - PullRequest
0 голосов
/ 13 сентября 2010

Моя проблема в том, что в приведенном ниже коде свойство SelectedRow ничего не возвращает.Я вручную связываю элементы с GridView во время выполнения, и свойства autogeneratecolumns и свойства autogenerateselectbutton имеют значение true.

Я думаю, что проблема заключается в наличии PostBack при нажатии команды 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

Ответы [ 3 ]

0 голосов
/ 13 сентября 2010

Требуемая строка доступна через e (параметр GridViewCommandEventArgs), в частности значение e.CommandArgument, которое будет иметь индекс строки:

С здесь :

Чтобы определить индекс строки, вызвавшей событие, используйте свойство CommandArgument аргумента события, который передается в событие.Класс ButtonField автоматически заполняет свойство CommandArgument соответствующим значением индекса.Для других командных кнопок вы должны вручную установить свойство CommandArgument командной кнопки.Например, вы можете установить для CommandArgument значение <% # Container.DataItemIndex%>, когда элемент управления GridView не имеет подкачки.

0 голосов
/ 21 марта 2013

Помимо добавления 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
0 голосов
/ 13 сентября 2010

Выбранная строка находится в параметре GridViewCommandEventArgs.

...