在应用过滤器时,我在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()从网格中返回实际的行句柄,而不是应用过滤器的行句柄。
由于
答案 0 :(得分:0)
我相信你的假设不正确。 DevX文档说:“由于行句柄反映了视图中行的显示顺序,因此如果对数据进行排序和/或过滤,修改单行可能会影响以下行的句柄。”
我不认为你在该循环中删除行的方法是安全的,因为每次执行时,rowhandles都可能会发生变化。可以在here
中找到有关网格控件中选择的概述