在调试RadGrid1_UpdateCommand时,我注意到GridEditableItem的KeyValues为空(只是一个括号)。有49个SavedOldValues。源网格的数据表上有一个主键 网格数据源是在C#代码中手动指定的。
为什么KeyValues会为空?
答案 0 :(得分:1)
您是否在RadGrid的MasterTableView元素上指定了DataKeyNames
属性的键名?假设您的PK列被称为ID,那么您可以像这样分配它。
<telerik:RadGrid runat="server" ID="radgrid1">
<MasterTableView DataKeyNames="ID">
<Columns>...</Columns>
</MasterTableView>
</telerik:RadGrid>
然后,您可以通过DataKeyValues集合获取键值,然后将其转换为整数以供使用。
protected void radgrid1_UpdateCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
var keyValue = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"].ToString();
int id = Convert.ToInt32(keyValue);
}