On the MasterTableView I had the Primary Key ID in the DataKeyNames property, so I could get the primary key ID from the clicked row using this technique-
http://www.telerik.com/forums/how-to-create-dynamic-context-menu-in-hierarchy-grid
But what about the rest of the data? I could try to get at the data in it's label form on the grid row, but what I really wanted was the underlying data that was bound to the grid. After tweaking a using a little bit if Linq, I came up with this-
protected void GridContextMenu_ItemClick ( object sender, RadMenuEventArgs e ) { try { string radGridClickedRowIndex = Request.Form[ "radGridClickedRowIndex" ]; //hidden form field int RowIndex = -1; RowIndex = Convert.ToInt32 ( radGridClickedRowIndex ); GridDataItem gridRow = GridView.Items[ RowIndex ] as GridDataItem; int ID = Convert.ToInt32(gridRow.GetDataKeyValue ( "ID" ).ToString ());
var rv = ( from myrow in ((DataView)GRIDDataSet.Select ( DataSourceSelectArguments.Empty )).ToTable().AsEnumerable () where ( myrow.Field<int> ( "ID" ) == ID ) select myrow ).FirstOrDefault ();
...
And then you can access items in the bound data row like this
string myvalue = rv["column_name"].ToString();
Some of you will not get what I'm talking about. But to a certain group of people I hope this is useful. Remember to include the System.Linq namespaces at the top of the code behind page.
No comments:
Post a Comment