Asp.net

如何從 Telerik RadGrid 獲取“KeyValue”?

  • September 12, 2015
<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();
   }
}

引用自:https://stackoverflow.com/questions/12858487