2012-10-12 22 views
9
<telerik:RadGrid ID="radGrid" runat="server" AllowPaging="true" AllowCustomPaging="True" 
    GridLines="None" PageSize="20" AllowMultiRowSelection="true" ClientSettings-Selecting-AllowRowSelect="true" 
    AutoGenerateColumns="false" onneeddatasource="radGrid_NeedDataSource" OnItemCreated="radGrid_ItemCreated" 
    OnItemDataBound="radGrid_ItemDataBound" OnItemCommand="radGrid_ItemCommand" 
    DataKeyNames="ClientID"> 
    <mastertableview datakeynames="ID" gridlines="None" width="100%"> 
    <PagerTemplate> and so on ... </telerik:RadGrid> 

Scenariusz: - podanych powyżej jest markup z Telerik RagGrid kontrolę używam. Próbowałem otworzyć keyvalue z GridColumn, zwykły sposób,Jak pobrać "KeyValue" z Telerik RadGrid?

Int32 key = Convert.ToInt32((e.Item as GridDataItem).GetDataKeyValue("ID")); 

To nie działa. Czy istnieje alternatywa?

+1

Dlaczego określasz właściwość 'DataKeyNames' na RadGrid? Spróbuj go usunąć i zachować tylko dla 'MasterTableView' –

Odpowiedz

17

Spróbuj z poniższym fragmencie kodu.

+0

Jeśli powyższy kod nie jest dla ciebie gotowy, proszę powiedz mi, w którym wydarzeniu chcesz ocenić ten datake. –

+0

To działa. Problem polegał na czymś innym. – MontyPython

+0

Jeśli znalazłeś problem, dlaczego nie zamieścisz rozwiązania? –

3

Spróbuj

string keyValue = radGrid.MasterTableView.DataKeyValues[e.item.ItemIndex].ToString(); 
int key = Convert.ToInt32(keyValue); 
0

Próbujesz uzyskać dostęp do datakey, który nie jest jeszcze określony w radgrid znaczników:

DataKeyNames="ClientID" 

Int32 key = Convert.ToInt32(dataItem.GetDataKeyValue("ID")); 

To powinno być:

Int32 key = Convert.ToInt32(dataItem.GetDataKeyValue("ClientID")); 
+0

Dlaczego powinien to być "identyfikator klienta". Może to być DataKeyNames = "ID, nazwa, miasto, itp., Itp.". – MontyPython

+0

Uzyskujemy dostęp do naszych danych za pośrednictwem datakeynames mastertableview, a nie radgrid datakeynames. – MontyPython

+0

Widziałem go zdefiniowany jako "ClientID" na znaczniku. Zasugerowałem, aby zmienić kod, w którym została pobrana wartość, aby pasowała do zdefiniowanej nazwy klucza. To jest to. Możesz go zmienić na cokolwiek chcesz. –

2

zdefiniować klucz danych w znacznikach:

< MasterTableView datakeynames="ID" dir="RTL">< /MasterTableView> 

i dostęp w kodzie beh ind:

GridDataItem item = (GridDataItem)e.Item; 

var key = item.GetDataKeyValue("ID"); 
Powiązane problemy