翻譯|使用教程|編輯:龔雪|2025-10-15 14:28:34.300|閱讀 15 次
概述:本教程主要為大家介紹如何使用DevExpress WinForms數據網格控件進行數據排序的基礎知識,歡迎下載最新版組件體驗!
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
DevExpress WinForms擁有180+組件和UI庫,能為Windows Forms平臺創建具有影響力的業務解決方案。DevExpress WinForms能完美構建流暢、美觀且易于使用的應用程序,無論是Office風格的界面,還是分析處理大批量的業務數據,它都能輕松勝任!
本教程將指導用戶了解最終用戶在運行時可用的數據排序功能,還將看到如何在設計時和代碼中操作數據排序。
獲取DevExpress WinForms v25.1正式版下載
DevExpress技術交流群12:1028386091 歡迎一起進群討論
若要根據列對數據進行排序,請單擊該列的標題,網格將按升序對值進行排序,順序由顯示在列標題右邊緣的字形表示。
單擊相同的列標題可反轉排序順序,注意排序符號現在也被顛倒了。
如果單擊另一個列標題,則清除以前應用的所有數據排序。若要保留現有的排序設置,從而對多個列進行排序,請在單擊時按住SHIFT鍵。只有當第一列中有重復的值時,按第二列排序才有意義。
如果在列標題菜單中使用Sort Ascending或Sort Descending項,則還保留先前應用的數據排序。
若要禁用針對特定列的數據排序,請按住CTRL鍵并單擊該列的標題,使用列標題菜單中的Clear Sorting項也可以完成相同的操作。如果需要清除所有的數據排序條件,請使用Clear All Sorting項。
您可以在設計時網格數據使用列標題上下文菜單或Property Grid,在按住SHIFT鍵的同時單擊項目名稱和狀態列標題,并將其屬性設置為 。
運行應用程序,網格數據根據Project Name和Status列排序。
返回到設計時,并通過將屬性設置為來清除這些列的排序設置。
要禁用針對列的最終用戶數據排序,請將列的選項設置為false。
運行應用程序,通過右鍵單擊Project Name列標題,您將發現是否禁用了Sort Ascending或Sort Descending項。注意,您仍然可以根據其他列對網格數據進行排序。
為了防止最終用戶以集中的方式對所有列進行排序,請選擇網格視圖,展開屬性并禁用選項。
再次運行應用程序來確保不能對網格數據進行排序。
下一步是了解如何在代碼中對網格數據進行排序。請注意,無論視圖的和列的選項如何,這都可以工作。
根據按鈕的Click事件處理程序中的Project Name和Status列對數據進行排序。首先,獲取要對其進行排序的對象,通過調用視圖的方法清除現有的排序設置。然后,使用屬性設置所需的排序順序。注意GridControl將在每個語句之后重新排序它的數據——在本例中是三次。為了防止過度更新,請使用 和方法。在這種情況下,網格的數據將只重新排序一次。
C#
private void btn_SortData_ItemClick(object sender, ItemClickEventArgs e) { GridColumn colProject = gridView.Columns["ProjectID"]; GridColumn colStatus = gridView.Columns["Status"]; gridView.BeginSort(); try { gridView.ClearSorting(); colProject.SortOrder = ColumnSortOrder.Ascending; colStatus.SortOrder = ColumnSortOrder.Ascending; } finally { gridView.EndSort(); } }
運行應用程序并單擊按鈕,因此網格數據是根據Project Name和Status列排序的。
對網格列應用排序的另一種方法是通過調用gridcolumnsortinfocollectionclearandadrange方法將相應的項添加到視圖的ColumnViewSortInfo集合中。該方法清除現有的排序,添加新的GridColumnSortInfo對象作為參數傳遞,并且只更新View一次,因此您不需要ColumnViewBeginSort和ColumnViewEndSort方法。
C#
private void btn_SortData_ItemClick(object sender, ItemClickEventArgs e) { GridColumn colProject = gridView.Columns["ProjectID"]; GridColumn colStatus = gridView.Columns["Status"]; gridView.SortInfo.ClearAndAddRange(new GridColumnSortInfo[] { new GridColumnSortInfo(colProject, ColumnSortOrder.Ascending), new GridColumnSortInfo(colPriority, ColumnSortOrder.Ascending) }); }
再次運行應用程序并單擊按鈕來查看結果。
慧都是?家?業數字化解決?案公司,專注于軟件、?油與?業領域,以深?的業務理解和?業經驗,幫助企業實現智能化轉型與持續競爭優勢。
慧都科技是DevExpress的中國區的合作伙伴,DevExpress作為用戶界面領域的優秀產品,幫助企業高效構建權限管理、數據可視化(如網格/圖表/儀表盤)、跨平臺系統(WinForms/ASP.NET/.NET MAUI)及行業定制解決方案,加速開發并強化交互體驗。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉載自:慧都網