如何在DEVEXPRESS DB量子格里德中添加非结合列



我正在使用这些组件:

UniDac for connection to mysql database
DevExpress for QuantumGrid

IDE:

Embarcadero Rad Studio XE2

我有一个具有一个级别的CXGRID组件,而CXGRID1DBTableView指定为级别的视图。我可以从数据库中获取数据并在网格中进行编辑。我想添加一个不在界数据集中的列。当我指定列属性值为复选框时,我可以看到列,但是我无法通过单击该值将值从未检查的值更改为检查。该字段没有分配给其的 databinding 。我尝试了其他类型的属性,但所有类型都是相同的,我无法更改网格中的行值。

我一直在寻找一种解决此问题的方法,所以我希望你们能帮助我。

您是否尝试添加一个没有数据库字段的复选框项目?我在我的一种形式上都有这个。

除了将属性设置为"复选框"外,您还需要将数据指标 -> valueType设置为"布尔值"。databinding->字段名称可以留空。

要访问值或更改其默认值,您可以这样使用Datacontroller:

View.DataController.Values[i, CheckBoxFieldIndex] := true;

另外,您需要设置

DataController.DataModeController.SmartRefresh := true; 

要设置该选项,您还需要为控制器定义一个键字段(datacontroller.keyfieldnames)

将Smartrefresh设置为TRUE将阻止网格尝试从基础数据集中获取更新值。您需要防止刷新或非结合列的值设置回NULL。这对您如何更新数据集有一些限制。除非明确刷新网格,否则对代码中数据的任何更改都不会反映。

您还必须用一个数据集字段填充字段 view.datacontroller.keyfieldnames 。至少我需要在Delphi 7中。

相关内容

  • 没有找到相关文章

最新更新