使用复合 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

如何在 KeyCloak 中获取复合角色

每次使用时在复合组件中获取相同的“componentType”实例

HibernateTemplate 复合键获取值 null

ActionScript 3 使用复合String获取对Flex 3对象的引用