翻譯|使用教程|編輯:龔雪|2025-08-05 10:19:16.660|閱讀 112 次
概述:本教程主要為大家介紹DevExpress WinForms數據網格控件中的分組行API,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
本教程從DevExpress WinForms 網格中默認可用的數據分組UI開始,然后向您展示如何在設計時應用數據分組,并繼續介紹相關選項,例如:
最后,本教程將指導您了解可用于在代碼中分組數據的基本API。
獲取DevExpress WinForms v25.1正式版下載
DevExpress技術交流群11:749942875 歡迎一起進群討論
要按特定列對數據進行分組,最終用戶可以將列標題面板中的標題拖到組面板上。DevExpress WinForms GridControl自動按升序對數據組進行排序,若要反轉排序順序,請單擊列標題。
要展開分組行并因此訪問它的子數據行,雙擊組行的任何位置或單擊行展開按鈕。
對數據進行分組的另一種方法是從列標題上下文菜單中選擇Group by This Column項,如果分組面板中有兩個或更多列,則行將根據分組列值形成層次結構。
您可以將列標題拖動到分組面板中的另一個位置。
拖動列標題時,按住Ctrl鍵將一個標題停靠到另一個標題上,這允許您一次按多個列對網格數據進行分組。
合并的列分組塊可以與常規列分組組合。
若要取消數據組,請將列標題從分組面板拖到列標題面板,或右鍵單擊列標題并從上下文菜單中選擇Ungroup。要刪除所有分組,請右鍵單擊組面板并選擇Clear Grouping。
在設計時,您可以使用相同的拖放操作和上下文菜單。除此之外,您還可以使用列的屬性。將此屬性設置為非負整數值,該值指定分組級別。將Received列的值設置為0,將Read列的值設置為1。因此,Received列將處于根分組級別,Read列將處于第二級。
運行應用程序并嘗試展開和折疊行,來查看數據行分組背后的邏輯。
默認情況下,數據組包含相同的值,但網格還允許將值范圍分組在一起。這可以很容易地用日期/時間列來演示。打開顯示Received列設置的Property網格,并將屬性設置為。結果,網格行被組合成日期范圍,包括Today”, “Yesterday”, “Last Week”等。
接下來,查看與數據分組有關的影響網格操作的選項。
默認情況下,分組列值盡在分組行中顯示,列不在視圖中顯示。如果您需要顯示它們,展開視圖的屬性并啟用選項,將看到分組列現在保留在視圖中。
視圖的屬性指定了分組行的繪制樣式,更改這個屬性值,繪制樣式通常會影響分組行的高度和數據組的縮進。
現在展開View的屬性并啟用選項,在滾動分組數據時,最上面的組行固定在網格的頂部,并且始終顯示。一個特殊的符號表示您已經滾動過了該分組中的一部分行。
分組操作后,數據組通常會被折疊。要自動展開所有組行,請將屬性設置為true。如果更改分組,請查看如何顯示所有數據行。
GridControl允許您阻止最終用戶更改已應用于網格的分組條件,將列的屬性設置為false,來防止最終用戶根據該列進行分組。要對視圖中的所有列執行相同的操作,請禁用視圖的屬性,另外您可以使用View的屬性隱藏分組面板。
下一步是了解如何在代碼中對網格數據進行分組。請注意,無論視圖的和列的選項如何,這都可以工作。
根據按鈕的Click事件處理程序中的接收列和讀取列對數據進行分組,首先獲取對應的兩個網格列對象。通過調用View的方法來清除現有的組設置,然后使用屬性設置所需的分組級別。注意,GridControl將在每個語句之后重新排序它的數據——在我們的示例中是三次。為了防止過度更新,請使用和方法。在這種情況下,網格視圖將只更新一次。
C#
private void btn_Group_ItemClick(object sender, ItemClickEventArgs e) { GridColumn colReceived = gridView.Columns["Date"]; GridColumn colRead = gridView.Columns["Read"]; gridView.BeginSort(); try { gridView.ClearGrouping(); colReceived.GroupIndex = 0; colRead.GroupIndex = 1; } finally { gridView.EndSort(); } }
運行應用程序并單擊Group按鈕,因此網格數據按Received和Read列分組。
對網格列應用分組的另一種方法是使用視圖的集合,調用方法來清除現有的排序/分組設置,然后根據需要對數據進行排序和分組。傳遞一個包含兩個元素的數組作為方法的第一個參數,這些元素按升序對Received列和Read列應用排序。傳遞2作為第二個參數,從而表明需要應用數據分組,而不是排序。這個方法只更新View一次,所以您不需要使用和方法。
C#
private void btn_Group_ItemClick(object sender, ItemClickEventArgs e) { GridColumn colReceived = gridView.Columns["Date"]; GridColumn colRead = gridView.Columns["Read"]; gridView.SortInfo.ClearAndAddRange(new GridColumnSortInfo[] { new GridColumnSortInfo(colReceived, DevExpress.Data.ColumnSortOrder.Ascending), new GridColumnSortInfo(colRead, DevExpress.Data.ColumnSortOrder.Ascending), }, 2); }
現在再次運行應用程序并單擊Group按鈕來查看結果。
要在Expand All Groups按鈕得單擊事件處理程序中展開所有分組行,請使用View的方法。類似地,用 方法調用為Collapse All Groups按鈕編寫的Click事件處理程序。
C#
private void btn_Expand_ItemClick(object sender, ItemClickEventArgs e) { gridView.ExpandAllGroups(); } private void btn_Collapse_ItemClick(object sender, ItemClickEventArgs e) { gridView.CollapseAllGroups(); }
通過單擊Group按鈕運行應用程序并對數據進行分組,單擊Expand All Groups按鈕時,將顯示所有數據行。若要折疊組行,請單擊Collapse All Groups按鈕。
慧都是?家?業數字化解決?案公司,專注于軟件、?油與?業領域,以深?的業務理解和?業經驗,幫助企業實現智能化轉型與持續競爭優勢。
慧都科技是DevExpress的中國區的合作伙伴,DevExpress作為用戶界面領域的優秀產品,幫助企業高效構建權限管理、數據可視化(如網格/圖表/儀表盤)、跨平臺系統(WinForms/ASP.NET/.NET MAUI)及行業定制解決方案,加速開發并強化交互體驗。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網