2012-10-12 34 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> 

Kịch bản: - Đưa ra ở trên là đánh dấu kiểm soát Telerik RagGrid mà tôi đang sử dụng. Tôi cố gắng để truy cập vào KeyValue của GridColumn, theo cách thông thường,Làm thế nào để lấy 'KeyValue' từ Telerik RadGrid?

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

Đây không phải đang làm việc. Có người thay thế không?

+1

Tại sao bạn chỉ định thuộc tính 'DataKeyNames' trên RadGrid? Cố gắng loại bỏ nó và giữ lại nó chỉ cho 'MasterTableView' –

Trả lời

17

Hãy thử với đoạn mã dưới đây.

+0

Nếu mã trên không làm việc cho bạn thì xin vui lòng cho tôi biết trong trường hợp bạn muốn đánh giá datakey này. –

+0

Nó đang hoạt động. Vấn đề là cái gì khác. – MontyPython

+0

Nếu bạn tìm thấy sự cố, tại sao bạn không đăng giải pháp? –

3

Hãy thử điều này

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

Bạn đang cố gắng truy cập vào một datakey mà thậm chí không được quy định trong đánh dấu radgrid:

DataKeyNames="ClientID" 

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

Nó nên là:

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

Tại sao nó phải là 'ClientID'. Nó có thể là DataKeyNames = "ID, tên, thành phố, vv, vv, vv". – MontyPython

+0

Chúng tôi truy cập dữ liệu của chúng tôi thông qua datakeynames mastertableview và không phải datakeynames radgrid. – MontyPython

+0

Tôi thấy nó được định nghĩa là "ClientID" trên đánh dấu. Tôi đã đề xuất thay đổi mã nơi bạn cũng lấy giá trị để khớp với tên khóa được xác định. Đó là nó. Bạn có thể thay đổi nó thành bất cứ điều gì bạn muốn. –

2

Xác định chủ chốt dữ liệu của bạn trong đánh dấu:

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

và truy cập vào mã hoạt động ind:

GridDataItem item = (GridDataItem)e.Item; 

var key = item.GetDataKeyValue("ID"); 
Các vấn đề liên quan