解决CxGrid Filter 后,通过 Dataset 循环时得出的结果与 Grid显示不同步的问题.

  //  方案1:   强制cxgrid 使用 dataset的 Filter

  GridMaster.DataController.Filter.AutoDataSetFilter := True;
/// 通过 FilterRecordCount 来查询结果

Screen.Cursor := crHourGlass;

 cxGrid2DBTableView1.DataController.GotoFirst;

 for i := 0 to cxgrid2DBTableView1.DataController.FilteredRecordCount - 1 do

 begin

   if cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  = True then

   begin

     cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue := False;

   end

   else if cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  = False then

   begin

     cxGrid2DBTableView1.DataController.GetItemByFieldName('IsChecked').EditValue  := True;

   end;

 

   cxGrid2DBTableView1.DataController.GotoNext;

 end;

 Screen.Cursor := crDefault;

 

你可能感兴趣的:(filter)