cxGrid 修改列值后立即提交(原创)
在 cxGrid 中如果修改了一列的值,并不会自动保存到后台数据库中,只有焦点转换到另一行才会执行保存,即使设置了该列的 ImmediatePost 属性也不行。实践证明, ImmediatePost 属性不是立即保存的关键,设置 ImmediatePost 只是能实现用户修改当前列的值后,不必等焦点转移到另一列或另一行,马上就把数据提交到后台数据集(bounded模式);对于 Unbound 的列,设置 ImmediatePost 属性后,修改后即时更新 DataControler 中的数据(或许需要执行 DataControler 的 PostEditValue 或列对象的 PostEditValue 方法???)。事实上,cxGrid 中对一列的值修改后,数据已经提交到后台的数据集中,只有在行焦点转换时才会触发后台数据集的 Post 方法,因此,想要实现立即保存,只要在该列的 OnChange 事件中对数据集执行 Post 即可。
procedure TForm1.cxGridCustomersDBTableView1IsEduPropertiesChange(
Sender: TObject);
begin
uDm.DataModule1.tCustomers.Post;
end;

浙公网安备 33010602011771号