2010-08-10 4 views
0

Lorsque je clique sur une ligne de mon Telerik RadGrid, je peux déclencher la méthode suivante. Je peux faire référence à l'une des colonnes par exemple, élément [ « Description »]Grille Telerik - Référencement d'un élément sélectionné

Problème: Comment référencer le DataKeyName de « 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"]; 

Répondre

0

En deux ans d'utilisation de RadGrid, j'ai toujours utilisé une colonne cachée, une douleur mais c'est ainsi que [Telerik] m'a dit de l'utiliser.

+0

Ne serait-item.OwnerTableView.DataKeyValues ​​[ "Id"] travail? – Galilyou

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); 

Je triché et utilisé une colonne cachée. Il doit y avoir un meilleur moyen, mais cela fonctionne bien!

0

Je vois que vous avez ajouté le champ ID aux DataKeyNames de la table principale - pourquoi ne pas utiliser DataKeyValues ​​pour obtenir les valeurs d'id à partir des lignes de la grille? Voir this article pour un départ.

Dick