1. 程式人生 > >使用ComponentOne中的GroupDefinition和SortDefinition屬性儲存和還原佈局

使用ComponentOne中的GroupDefinition和SortDefinition屬性儲存和還原佈局

下載ComponentOne最新版本

(一)概述

在此前的ComponentOne中,我們為C1FlexGrid(最快,最靈活的.Net資料網格控制元件)添加了一個非常強大的動態分組功能。 隨著ComponentOne Enterprise 2018v3版本的正式釋出,ComponentOne For WinForm 中的C1Flexgrid又向前推進了兩個新屬性:GroupDefinition和SortDefinition。

GroupDefinition和SortDefinition的用例

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

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

ComponentOne

如何使用這兩個新屬性

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;