为什么当 UpdateCommand 为 运行 时 Telerik RadGrid KeyValues 字符串为空?
Why is the Telerik RadGrid KeyValues string empty when UpdateCommand is running?
在调试 RadGrid1_UpdateCommand 时,我注意到 GridEditableItem 的键值是空的(只是一组括号)。有 49 个 SavedOldValues。源自网格的数据 table 上有一个主键。
网格数据源是在C#代码中手动指定的。
为什么 KeyValues 会是空的?
您是否为 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);
}
在调试 RadGrid1_UpdateCommand 时,我注意到 GridEditableItem 的键值是空的(只是一组括号)。有 49 个 SavedOldValues。源自网格的数据 table 上有一个主键。
网格数据源是在C#代码中手动指定的。
为什么 KeyValues 会是空的?
您是否为 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);
}