2012-03-06 25 views
0

我遇到了在應用篩選器時在DevEx網格上獲取選定行(GetSelectedRows())的問題。看起來好像GetSelectedRows正在使用過濾器返回網格中的位置,而不是數據源中的實際行句柄。DevEx Grid 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()從網格返回acutal行句柄,而不是應用過濾器。

謝謝

回答

0

我相信你的假設是不正確的。 DevX文檔稱:「由於行句柄反映了視圖中行的顯示順序,因此如果對數據進行排序和/或過濾,修改單行可能會影響以下行的句柄。」

我不認爲你在該循環內移除行的方法將是安全的,因爲每次你這樣做,行手柄都可能改變。在網格控制中的選擇概述可以發現here