Datagrid: get value from the row selected by user

  • Thread starter Thread starter Northern
  • Start date Start date
N

Northern

What I want to do is to retrive the value from the row
that was selected by uesr. I added the "Select" command
column and linked the select event to one of my method by
setting my DataGrid's attribute:
OnSelectedIndexChanged="OnSelectRow"

Now comes the problem. Even though I can invoke this
OnSelectRow method, I can only do so when I have the
following signiture:
Protected Sub OnSelectRow(ByVal sender As Object, _
ByVal e As System.EventArgs)

This doesn't help me because System.EventArgs doesn't give
me what I need.

Can somebody help me on how to do this? What signiture
should I use in this case?

Thanks
 
I think you want to use grid.SelectedIndex or grid.SelectedItem in this
event instead of the generic EventArgs.

If you defined a DataKeyField attribute on your grid you can do something
like so instead the event:

Dim KeyID = Ctype(grid.DataKeys(grid.SelectedIndex), integer)


Another approach is to use the ItemCommand event instead (which gets fired
prior to the more specific SelectedIndexChanged). Note: in the ItemCommand
event your grid.SeletecIndex is the previously selected row, not the current
one (it doesn't change until SelectedIndexChanged fires).

Protected Sub HandleCommand(ByVal s As Object, ByVal e As
DataGridCommandEventArgs) Handles grid.ItemCommand

If e.CommandName = "Select" Then
Dim KeyID As Integer = CType(grid.DataKeys(e.Item.ItemIndex),
Integer)
End If

End Sub

HTH,
Greg
 
Back
Top