应用了筛选器的DevEx网格GetSelectedRows()
本文关键字:网格 GetSelectedRows DevEx 筛选 应用 | 更新日期: 2023-09-27 18:27:01
当应用过滤器时,我在DevEx网格上获取所选行(GetSelectedRows())时遇到问题。看起来GetSelectedRows返回的是带有过滤器的网格中的位置,而不是数据源中的实际行句柄。
var rowHandles = gridView.GetSelectedRows();
var count = rowHandles.Length;
for (int indx = count-1; indx >= 0; indx-- )
{
if (rowHandles[indx] >= 0)
{
if (ServiceProxy.Instance.IsAlive(CommandNames.Delete))
((IList<ISymbolFieldInfo>)_staticPriceConfigurationBindingListUser).RemoveAt(rowHandles[indx]);
}
}
}
有人能告诉我我在这里做错了什么吗。我希望GetSelectedRows()从网格返回实际的行句柄,而不是应用过滤器的。
感谢
我认为你的假设是不正确的。DevX文档称,"由于行句柄反映了视图中行的显示顺序,如果对数据进行排序和/或过滤,修改单行可能会影响后续行的句柄。"
我不认为在循环中删除行的方法是安全的,因为每次这样做,行句柄都可能发生变化。有关网格控制中选择的概述,请参见