2009-06-03 81 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

相關問題