首页 > 代码库 > cxgrid对经过筛选过的数据的选择(反选)
cxgrid对经过筛选过的数据的选择(反选)
// 下面这个主要是对查询出来的数据, 经过筛选后得到的数据中进行反选操作 ,然后对选择的数据进行修改(全选或选择一部分也可以根据些代码修改)Screen.Cursor := crHourGlass; cxGrid2DBTableView1.DataController.GotoFirst; for i := 0 to cxgrid2DBTableView1.DataController.FilteredRecordCount - 1 do begin if cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue = http://www.mamicode.com/True then begin cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue := False; end else if cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue = http://www.mamicode.com/False then begin cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue := True; end; cxGrid2DBTableView1.DataController.GotoNext; end; Screen.Cursor := crDefault;//cxgrid2DBTableView1.DataController.FilteredRecordCount这个是得到筛选后的数据行数//cxGrid2DBTableView1.DataController.GetItemByFieldName(‘IsChecked‘).EditValue这个是得到要修改的字段的值 选择按钮下有三个选项:全选、反选、全取消 一般是这样的: 先查询,再筛选(查询出来的数据有些不合适时要筛选), 再选择列下打上勾(要是数据多的话一个个打勾也太麻烦了),就可以修改数据的状态,上面的代码就可以对筛选出来的数据进行反选操作。(全选或全取消也是很简单的,参照上面有代码) , 以前写的代码把经过筛选出来没用的数据也在反选或全选等操作中了 ,这个就没有问题
using Filter :
procedure TForm2.Button3Click(Sender: TObject);var I: Integer;begin for I := 0 to cxGrid1DBTableView1.DataController.FilteredRecordCount - 1 do begin cxGrid1DBTableView1.DataController.FocusedRecordIndex := cxGrid1DBTableView1.DataController.FilteredRecordIndex[I]; cxGrid1DBTableView1.DataController.SetEditValue(cxGrid1DBTableView1Reviewed.Index, True, evsValue) end;end;
cxgrid对经过筛选过的数据的选择(反选)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。