// 方案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;