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