回复 1楼qqlww的帖子
C1FlexGrid自带排序特性,它通过Data Provider 提供的数据缓存操作数据。但通过List绑定,排序功能无法使用。这点和微软自带的标准的DataGridView是一样的,给它绑定一个List,它自带的排序也是无法使用的。
现在有两种方法解决你的问题:
第一种,更改数据源。使用Access或是SQL数据源,这两种数据源本身支持排序功能。或是DataTable数据源。
第二种,需要自己写Code实现排序,这个就比较复杂。你需要继承BindingList,然后自己重载(ApplySortCore, RemoveSortCore, SupportsSortingCore, SortDirectionCore 等)方法。绑定后写和C1FlexGrid相关的代码显示排序指示器,代码如下所示:
- this.c1FlexGrid1.AfterSort += (s1, e1) =>
- {
- var flex = s1 as C1.Win.C1FlexGrid.C1FlexGrid;
- flex.Invalidate();
- flex.ShowSortAt(e1.Order, e1.Col);
- };
复制代码
我们的产品博客有介绍如何对绑定的数据对象排序,供你参考http://blog.gcpowertools.com.cn/post/2013/03/14/C1FlexGrid-对绑定的数据对象排序.aspx
相关的例子也可以在附件获得。
|