2010-08-10 41 views
0

當我單擊Telerik RadGrid上的一行時,我可以觸發以下方法。我可以引用任何列例如項目的[「描述」]Telerik Grid - 引用選定的項目

問題:如何以引用的DataKeyName「ID」

<telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True" 
      AutoGenerateColumns="False" DataSourceID="LinqDataSource1" GridLines="None" OnItemDataBound="materialsGrid_ItemDataBound" OnItemCommand="RadGrid1_ItemCommand"> 
      <ClientSettings EnableRowHoverStyle="true" AllowKeyboardNavigation="true" EnablePostBackOnRowClick="true"> 
      <Selecting AllowRowSelect="True" /> 
     </ClientSettings> 

      <MasterTableView DataKeyNames="Id" DataSourceID="LinqDataSource1" CssClass="listItems" 
       Width="98%"> 


protected void RadGrid1_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) 
    { 
     GridDataItem item = (GridDataItem)e.Item; 
     string str = item["Description"].Text; 
     var Id = item["Id"]; 

回答

0

在使用RadGrid的兩年中,我總是使用隱藏列,但是這是他們[Telerik]告訴我使用它的方式。

+0

不會item.OwnerTableView.DataKeyValues [「Id」]工作嗎? – Galilyou 2011-09-27 17:13:47

0
<telerik:GridBoundColumn DataField="Id" HeaderText="Id" SortExpression="Id" Visible="false" 
UniqueName="Id"> 
</telerik:GridBoundColumn> 


protected void dave_ItemCommand(object source, GridCommandEventArgs e) 
{ 
     GridDataItem item = (GridDataItem)e.Item; 
     Guid Id = new Guid(item["Id"].Text); 

我欺騙和使用的隱藏列。必須有更好的方法,但是這會讓它工作起來!

0

我看到您將ID字段添加到主表的DataKeyNames中 - 爲什麼不使用DataKeyValues從網格行中獲取id值?請參閱this article以取得成功。

迪克