2011-05-31 64 views
1

我有一個TcxGrid,它由主TcxGridLevel和2個子TcxGridLevels(所有這些都使用TcxGridDBTableView)組成。我想隱藏其中一個子級別,具體取決於主級別記錄值的值。我如何去做這件事?根據主記錄值隱藏TCXGrid中的TcxGridLevel

回答

3

這裏是DevExpress的鏈接描述你想要什麼:

https://www.devexpress.com/Support/Center/Question/Details/Q96738

但是,這在我看來一些缺點。首先,對於較大的數據集來說速度很慢。其次,當您的主級別頻繁更改並且網格必須重新繪製時,會出現「閃爍」。也許可以爲你的細節數據集設置一個過濾器,這樣當你的nmaster具有正確的條件時,細節是「空的」。 TcxGrid中有一個屬性可以自動隱藏空的詳細信息選項卡。

有點斷章取義,但在情況下,鏈接再次變死:

1)我怎樣才能觸發Level3的OnGetGridView,因爲我預計Level3的看法是不會改變

的OnGetGridView事件只在細節第一次展開時引發一次。事件處理程序執行完畢後,指定的GridView的克隆將被創建並緩存,以便下次展開同一主記錄時事件不會觸發。如果您需要稍後提出事件,則可以通過調用主DataController的ClearDetails方法或ClearDetailLinkObject方法來清除所有細節克隆。

您可以在ExpressQuantumGrid文檔的「TcxGridLevel.OnGetGridView」主題中找到此信息。

2)我也在爲每個顯示的Gridview改變Level2和Level3標題,但改變不是自動的,有時候需要細節視圖關閉並再次打開才能使標題更改。

如果我們沒有弄錯,您可以在其OnGetGridView事件處理程序中更改關卡的標題。如果是這樣,則不會立即應用新標題,因爲相應元素的繪製未完成。作爲解決方法,您可以通過發佈自定義消息來執行「延遲」操作。我附上了一個示例項目來說明這種方法的實際應用。希望它能滿足你的需求,並且適應它不會成爲問題。