使用复合 KeyFieldName 获取 ASPxGridView.RowUpdating 事件中的更新行
Posted
技术标签:
【中文标题】使用复合 KeyFieldName 获取 ASPxGridView.RowUpdating 事件中的更新行【英文标题】:Get updated row in ASPxGridView.RowUpdating event with composite KeyFieldName 【发布时间】:2019-11-12 05:20:20 【问题描述】:我正在尝试为我的 ASPxGridView 创建自定义编辑脚本。我有第二个网格,我在其中使用下面的代码来获取已更新的行。但是,这不起作用,因为我的网格有一个复合 KeyFieldName(因为它所基于的表有一个由两列组成的主键)。这导致 FindVisibleIndexByKeyValue 方法总是返回 -1。
关于如何以其他方式获取该行的任何想法?
object key = e.Keys[grid.KeyFieldName];
int row = grid.FindVisibleIndexByKeyValue(key);
编辑:问题实际上是 e.Keys[grid.KeyFieldName] 返回 null。
【问题讨论】:
【参考方案1】:这可以通过将键一一保存到对象数组中并将该数组传递给 FindVisibleIndexByKeyValue() 来实现。
object[] key = new object[2];
key[0]= e.Keys["firstKey"];
key[1] = e.Keys["secondKey"];
int row = grid.FindVisibleIndexByKeyValue(key);
【讨论】:
以上是关于使用复合 KeyFieldName 获取 ASPxGridView.RowUpdating 事件中的更新行的主要内容,如果未能解决你的问题,请参考以下文章
使用复合键保存实体获取 ConversionNotSupportedException