使用ASPxGridView
事件OnFocusedRowChanged
来过滤屏幕上其他组件的数据是很常见的。
问题是,当对表进行排序时,通过更改FocusedRowIndex
来保留属性KeyValue
,从而丢失我们使用的参数过滤器。
如何避免这个问题?
答案 0 :(得分:0)
ASPxGridView
排序后,callback runs。
要避免此问题,只需使用以下代码处理AfterPerformCallback
服务器端事件:
int rowIndex = (sender as ASPxGridView).FindVisibleIndexByKeyValue(keyValue);
(sender as ASPxGridView).FocusedRowIndex = (rowIndex == ASPxGridView.InvalidRowIndex) ? -1 : rowIndex;
我将解释:保留KeyValue
的值,用于过滤Session
或ASPxHiddenField
屏幕上其他组件的数据。
如果找不到keyValue
的值,我们会将FocusedRowIndex
设置为-1(使行无法聚焦),否则我们始终保持相同的keyValue
。