概述

在此前的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 能为您带来更敏捷的开发体验。