应用了筛选器的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()从网格返回实际的行句柄,而不是应用过滤器的。

感谢

应用了筛选器的DevEx网格GetSelectedRows()

我认为你的假设是不正确的。DevX文档称,"由于行句柄反映了视图中行的显示顺序,如果对数据进行排序和/或过滤,修改单行可能会影响后续行的句柄。"

我不认为在循环中删除行的方法是安全的,因为每次这样做,行句柄都可能发生变化。有关网格控制中选择的概述,请参见