2009-06-03 132 views
2

我有一个DevExpress的TcxGrid,与连接到它的GridView的OnEditValueChanged事件的事件处理程序,是应该在一列总结了一些数据。问题是,在更新后的值写入底层数据集之前,此事件在验证期间被触发。我对TcxGrid不太熟悉。有谁知道,如果有一种方法来触发一个事件处理程序后的数据集已更新?如何在TcxGrid中的值发生更改后触发事件处理程序?

回答

6

有关使用DataSource.OnDataChange事件是什么?

+0

这是唯一的想法,工作。 – 2009-06-03 16:49:41

1

你使用cxTableView或cxDBTableView在cxGrid

如果使用cxDBTableView那么你在cxDBTableView的财产链接数据源的datasource.onchange设置你的事件。 (cxDBTableView .datacontroller.datasource)

0

我会与skamradt一起去看看:更仔细地寻找符合您期望的事件。

否则,您可以确保您的数据初始化后插上的事件:

procedure TMyGrid.MyProc_OnDataLoaded(Sender : TObject); //I made up this event, I'm not sure it exists 
begin 
    Self.OnEditValueChanged := MyProc_OnEditValueChanged; 
end; 

我会强烈建议你不要用这个作为一个普通的深化发展习惯中(使通过代码设置另一个回调的事件一个肯定的方式来调试地狱),但如果你真的没有找到任何其他方式来做到这一点...

2

我不知道这是否正是你所需要的,但我已经找到ImmediatePost选项该网格对于需要更新摘要的情况非常有用 - 它被隐藏在cxView的Data Controller属性下。这使得网格就像电子表格一样 - 只要用户按下单元格中的输入或选项卡,记录就会发布。那么我可能会从数据集的AfterPost事件中收集我的总结事件,或许? (你可能已经知道这一点,但GridView本身有很多非常有用的汇总选项 - 查看列的摘要属性,并确保在ViewOptions中将ShowFooter设置为true - 所以如果你的总结是一个相对简单的总体或平均或相似,让网格做到这一切,并节省自己的一些工作。)

+0

简单的摘要将不起作用。不过,我喜欢ImmediatePost的想法。我今天早上上班时会看看它是否符合我的需求。 – 2009-06-03 12:42:12

相关问题