Delphi cxgrid-选中所有复选框

Delphi cxgrid-选中所有复选框,delphi,devexpress,delphi-xe4,tcxgrid,Delphi,Devexpress,Delphi Xe4,Tcxgrid,我正在使用cxGrid。我的网格中有一个布尔类型(true/false)的字段(列),在网格中表示为复选框。如何在单击按钮时选中(或取消选中)列中的所有复选框 看起来是这样的: 现在,我想在保存所有内容之前,单击按钮,选中这3个复选框。。 左边的数据(用户)来自表,右边的数据来自查询。将所有内容保存到单独的日志表中 当我点击“全部检查”按钮时,结果是: 我可以运行更新查询:updatemyfieldsetselected='2'; 但我更感兴趣的是操纵网格本身。一些简单的…你必须在表单的某个

我正在使用cxGrid。我的网格中有一个布尔类型(true/false)的字段(列),在网格中表示为复选框。如何在单击按钮时选中(或取消选中)列中的所有复选框

看起来是这样的:

现在,我想在保存所有内容之前,单击按钮,选中这3个复选框。。 左边的数据(用户)来自表,右边的数据来自查询。将所有内容保存到单独的日志表中

当我点击“全部检查”按钮时,结果是:

我可以运行更新查询:updatemyfieldsetselected='2';
但我更感兴趣的是操纵网格本身。一些简单的…

你必须在表单的某个地方添加一个按钮或弹出菜单来接受“全部检查”命令,或者甚至在列标题中放置一个复选框。然后检查基础数据集,设置所有字段值。不要忘记禁用控件/启用控件。

在我的表中添加了一个额外字段(布尔类型),并将其在cxGrid中的属性更改为复选框的属性。然后单击按钮:

with uniquery1 do begin
  Active:=False;
  sql.Clear;
  SQL.Add('update users set selected = 0'); //or '1'
  execSql;
end;
Uniquery1.Refresh;

我发现这是最简单的方法….

我不想操作底层数据库数据。我希望网格选中/取消选中全部。我知道这是可以做到的。您的意思是说该列没有绑定到基础数据库字段吗?或者它可能是一个计算字段?或者您的TcxGrid没有默认的TcxGridTableView?请用足够的信息更新您的问题。首次显示数据时,仅用于用户选中或取消选中复选框的输入目的。没有别的了。当他完成后,他将整个过程保存到数据库中。如果我没记错的话,cxgrid能够使用脚本设置单元格值。@user763539:?这本身就是一篇有趣的文章,但答案的作者承认这很难看。也许您最好在数据集中添加一个fkInternalCalc字段,这样您就可以有一个绑定的复选框,而不需要写回数据库。