<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>
情况: – 以上是我正在使用的Telerik RagGrid控件的标记.我试图访问GridColumn的KeyValue,通常的方式,
Int32 key = Convert.ToInt32((e.Item as GridDataItem).GetDataKeyValue("ID"));
这不行.有替补吗?
解决方法
请尝试以下代码片段.
protected void RadGrid1_ItemDataBound(object sender,GridItemEventArgs e) { if (e.Item is GridDataItem) { // NORMAL MODE GridDataItem item = e.Item as GridDataItem; string strId = item.GetDataKeyValue("ID").ToString(); } if (e.Item is GridEditableItem && e.Item.IsInEditMode) { if (e.Item is GridEditFormInsertItem) { // INSERT MODE GridEditableItem editedItem = e.Item as GridEditableItem; } else { // EDIT MODE GridEditableItem editedItem = e.Item as GridEditableItem; string strId = editedItem.GetDataKeyValue("ID").ToString(); } } } protected void RadGrid1_ItemCommand(object sender,GridCommandEventArgs e) { if (e.CommandName == "YourCommandName") { GridDataItem item = e.Item as GridDataItem; string strId = item.GetDataKeyValue("ID").ToString(); } }