// 方案1: 强制cxgrid 使用 dataset的 Filter
GridMaster.DataController.Filter.AutoDataSetFilter := True;
/// 通过 FilterRecordCount 来查询结果
Screen.Cursor := crHourGlass;
cxGrid2DBTableView1.DataController.GotoFirst;
for i := to cxgrid2DBTableView1.DataController.FilteredRecordCount - 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;