一般的控件或者组件都支持按照某一列进行排序。但是,这种排序是根据数据源里的数据默认按照降序或升序排序的,同时这样的排序与字段的类型有关。

假设现在字段的类型是字符串类型 ,但是,存储的数据时数字加一些特殊的符号例如:20/1 ,1/5,1/30,0/2等等的数据。这时你不想根据字符串对它们进行排序,

而是想让它们按照数字进行排序例如:0/2,1/5,1/30,20/1。进行排序。

一般的排序都可以通过以下几种方式实现

有时候客户想要在一个域内对ASPxGridView的栏进行分组,而在另一个域内对其排序。本文中,我想描述一下如何通过不同的方法实现这个特点。因为,这并不像它可能看起来的那样简单。

在设计时,我们创建了一个简单的网格,它的数据从数据源控件处获得。我们想按城市来对ASPxGridView进行分组,而按国家对它进行排序。

这个任务可以通过以下几种方法来解决:

1.通过自定义栏位排序:按城市将网格分组,但是通过自定义栏位排序事件按国家对其排序。

2.在另一个域内对网格排序:按城市将网格分组,但是通过分组汇总排序信息类按国家对其排序。

3.通过自定义汇总类型对网格排序:按城市将网格分组,但是通过分组汇总排序信息类和自定义汇总计算事件按国家对其排序。

4.通过它们的名字对值进行排序:使用GridViewDataComboBoxColumn文本完成分组。

下面已第一种为例,此时就需要做下面两步就可以实现:

1.设置控件后组件的自定义排序属性:sortModel = custom;

2.再添加一个自定义事件

private void gridView1_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs e)
{
if (e.Column != null & e.Column.FieldName == "PACKAMOUNT")
{
string[] tempPacks1 = e.Value1.ToString().Split('/');
string[] tempPacks2 = e.Value2.ToString().Split('/');
int res = Comparer.Default.Compare(Convert.ToInt32(tempPacks1[0]), Convert.ToInt32(tempPacks2[0]));
if (res != 0) // 判断/之后的数据比较
{
e.Result = res;
e.Handled = true;
}
else if (tempPacks1.Length == 2 && tempPacks2.Length == 2)
{
int res1 = Comparer.Default.Compare(Convert.ToInt32(tempPacks1[1]), Convert.ToInt32(tempPacks2[1]));
e.Result = res1;
e.Handled = true;
}
else
{
e.Result = tempPacks1.Length > tempPacks2.Length ? 1 : -1;
e.Handled = true;
}
}
}

转载于:https://www.cnblogs.com/xplangren/p/3387694.html

DEV控件自定义排序实现相关推荐

  1. DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents

    上一节,已经介绍了ASPxGridView的自定义列和基本事件 ,本节接着将介绍Dev控件的客户端事件模型. 在上节示例基础上,我们增加一行菜单,使用Dev的ASPxMenu来实现,如下图所示. 图一 ...

  2. SAP UI5 初学者教程之二十三 - 列表控件的排序 Sort 和分组 Group 试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 初学者教程之一:Hello World SAP UI5 初学者教程之二:SAP UI5 ...

  3. Dev控件GridControl 的使用

    GridControl 中可以支持多个是view,所以默认的表格是gridview1,很多事件和属性可以通过this.gridview1来得到.如:改变行的数据后触发的事件 gridView1_Row ...

  4. Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据

    Dev控件用法 aspxTreeList 无刷新 aspxGridView 数据 主要是利用 ASPxTreeList 点击事件回发服务器进行数据重新绑定 ASPxTreeList: ? 1 2 &l ...

  5. DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

    最初的界面图如图1-1(全选框ID: cb_checkall  DEV控件名称:gcCon ): 要实现的功能如下图(1-2  1-3  1-4)及代码所示: 图1-2 图1-3 图1-4 O(∩_∩ ...

  6. DEV控件Grid显示行号

    DEV控件Grid的显示行号需要通过一个事件来设置,具体设置代码为: private void gridView1_CustomDrawRowIndicator(object sender, DevE ...

  7. WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展

    原文:WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展 一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐 ...

  8. 解决dev控件版本过期问题

    解决dev控件版本过期问题 参考文章: (1)解决dev控件版本过期问题 (2)https://www.cnblogs.com/lixioayi/p/9533024.html 备忘一下.

  9. dev控件ASPxComboBox设置ReadOnly=true后

    dev控件ASPxComboBox设置ReadOnly="true"后,在后台OnCallback事件中赋值前台不显示 转载于:https://www.cnblogs.com/he ...

最新文章

  1. 整理了 65 个 Matplotlib 案例,这能不收藏?
  2. 使用React Router以编程方式导航
  3. html入门学习(二)
  4. ERROR: Could not find a version that satisfies the requirement requests (from v ersions: none)
  5. SAP ABAP SICF事务码和SAP Hybris的链式过滤器filter chain
  6. Python中布尔值是False的所有值
  7. 安卓随机通话记录_几款安卓amp;苹果虚拟来电软件,带你快速逃离尬聊现场,留有情面慰人心扉...
  8. php地址地区选择器,区域选择 - 按大区及省市多选区域,可自定义用于其它业务 – 基于ThinkPHP和Bootstrap的极速后台开发框架...
  9. CSS样式表——列表与布局
  10. ul阻燃标准有几个等级_UL阻燃等级介绍说明
  11. web开发与设计,这些网站为你提供大量的开发资源与设计灵感
  12. 入侵服务器修改手游,如何入侵手游服务器数据库
  13. python化学公式配平_最简单易懂的化学方程式的配平方法
  14. rk3399 android 9.0 skype强制切换到前置摄像头
  15. matlab智能算法30个案例分析源码,MATLAB智能算法30个案例分析 源代码
  16. Cannot resolve method ‘subscribe(anonymous io.reactivex.Observer<xxx>)‘的解决方案
  17. MySql中 case then when end用法
  18. python换脸完整程序_小 200 行 Python 代码做了一个换脸程序
  19. 任正非:谁建言华为造车,就是干扰公司
  20. c 工厂模式与mysql链接_工厂模式连接数据库

热门文章

  1. bzoj3545 Peaks
  2. 如何在Rancher 2.2 Preview2上部署和管理多K8s集群应用
  3. Class与Style绑定
  4. 核心路由器聚焦三大关键点
  5. spark学习13(spark RDD)
  6. Android实现版本更新提示
  7. QA32中的出口 “STATTEXT”
  8. 设计强大的云应用程序
  9. 《The C Programming Language》(2nd Ed) Introduction 翻译
  10. Event delegate