【Visual Studio 擴展工具】使用ComponentOne中的GroupDefinition和SortDefinition屬性保存和還原佈局

概述

在此前的ComponentOne中,我們爲C1FlexGrid(最快,最靈活的.Net數據網格控件)添加了一個非常強大的動態分組功能,這篇技術博客《將動態分組添加到.NET表格控件FlexGrid中》是通過GroupDescriptions屬性爲我們演示了此功能。 隨着ComponentOne Enterprise 2018v3版本的正式發佈,ComponentOne For WinForm 中的C1Flexgrid又向前推進了兩個新屬性:GroupDefinition和SortDefinition。

GroupDefinition和SortDefinition的用例

目前,C1FlexGrid允許您在GroupPanel上拖動列,實現在運行時執行分組。 但是,如果您希望將網格再次恢復到相同的分組狀態,該怎麼辦? 例如,如果您需要按區域分析銷售信息,則可以將Country和City列拖到GroupPanel,對數據進行分類並分析信息。 但是,如果其他人必須執行相同的分析,或者您需要在下次訪問時繼續從同一狀態繼續,則您希望C1Flexgrid以特定間隔保存您的分類,然後將網格恢復爲相同狀態。這就是GroupDefinition屬性派上用場的地方。

同樣,如果需要以動態預定義排序狀態設置網格,則SortDefinition是您應該查找的屬性。

Demo Sample

如何使用這兩個新屬性

  1. GroupDefinition:獲取/設置包含C1FlexGrid分組狀態的XML格式的字符串。

    • Save:使用GroupDescriptions屬性對網格進行分組或通過在C1FlexGridGroupPanel上拖動列後,可以使用GroupDefinition屬性保存C1FlexGrid的分組狀態,如下所示:
    Properties.Settings.Default.GroupInfo = _flexgrid.GroupDefinition;
    

    此屬性以XML格式保存組信息,如下所示:

    <GroupDescriptions>
        < GroupDescription  PropertyName = "ShipCountry" SortDirection = "Ascending"
        Group =  "True"  />
        < GroupDescription  PropertyName = "ShipCity" SortDirection = "Ascending"
        Group  =  "True" />
        < GroupDescription  PropertyName  =  "ShipName"  SortDirection  = "Ascending"
        Group  = "False"  />
    </GroupDescriptions>
    
    • Load:在用戶設置等某個位置保存狀態後,您可以通過分配“組定義”屬性來使用此信息加載相同的組狀態,如下所示:
    _flexgrid.GroupDefinition = Properties.Settings.Default.GroupInfo;
    
  2. SortDefinition:獲取/設置包含C1FlexGrid排序狀態的XML字符串。

    • Save:在對單個/範圍的網格列進行排序後,通過設置列的Sort屬性或單擊列標題,可以使用SortDefinition屬性保存C1FlexGrid的排序狀態,如下所示:
    Properties.Settings.Default.SortInfo = _flexGrid.SortDefinition;
    

    此屬性以XML格式保存組信息,如下所示:

    <ColumnsSort>
        < ColumnSort ColumnIndex = "0" ColumnName = "ShipCountry"               
        Sort = "Ascending" />
        < ColumnSort ColumnIndex = "1" ColumnName = "ShipCity"                   
        Sort = "Ascending" /> 
        < ColumnSort ColumnIndex = "2" ColumnName = "ShipName"                    
        Sort = "Ascending" />
    </ColumnsSort>
    
    • Load :保存排序信息後,可以使用它將網格恢復爲相同的排序狀態,如下所示:
    _flexgrid.SortDefinition = Properties.Settings.Default.SortInfo;
    

我們希望 ComponentOne 中增加的新屬性使您更方便地保存和加載組/排序狀態,也同樣希望 ComponentOne 能爲您帶來更敏捷的開發體驗。


ComponentOne Enterprise | 下載試用

ComponentOne是一款專注於企業應用高性能開發的 .NET 全功能控件套包,包含300餘種控件,支持7大平臺,涵蓋7大功能模塊。較於市面上其他同類產品,ComponentOne更加輕盈,功能更加強大,20多年的開發經驗,將爲您的應用系統帶來更爲安全的使用體驗。純中文操作界面,一對一技術支持,廠商級的技術服務,共同造就了這款國際頂級控件套包。

您對ComponentOne 產品的任何技術問題,都有技術支持工程師提供1對1專業解答,點擊此處即可發帖提問>> 技術支持論壇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章