GridView 排序状态下,如果不采用GridView自带的新增空白行的话,而是采用AddNewRow或者自己编写的方法,新增行因为单元格值为空,导致排序发生混乱,如果想固定住新增行始终停留在最底部,解决方案有两种:
1、利用devexpress提供一个ImmediateUpdateRowPosition属性,可以在维护的时候不排序,不分组,不过滤等。(一开始发这贴的时候没注意到,后面有人提出来了,才恍然大悟,感谢这位兄台,当然,下面的自定义排序的方式也可以作为参考);

gridView1.OptionsBehavior.ImmediateUpdateRowPosition = false;

2、自定义排序,GridView提供了CustomColumnSort的事件进行自定义排序规则

private void Form1_Load(object sender, EventArgs e){var dt = new DataTable();for (int i = 0; i < 3; i++)dt.Columns.Add("Column" + i.ToString());for (int i = 0; i < 4; i++)dt.Rows.Add(new object[] { "Item" + i.ToString(), i, 3 - i });gridControl1.DataSource = dt;foreach (GridColumn col in gridView1.VisibleColumns){col.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;//排序设置为自定义排序,否则不会触发CustomColumnSort事件}gridView1.VisibleColumns[0].SortOrder = DevExpress.Data.ColumnSortOrder.Ascending;}
private void gridView1_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs e)
{           //此处取第一列作为判断依据,可以根据情况设置其他判断依据,比如ID值之类的,原理一样,目的就是让新增的行始终排在最下面。var value1 = (e.RowObject1 as DataRowView)["Column0"].ToString();var value2 = (e.RowObject2 as DataRowView)["Column0"].ToString();if (value1 == "" && value2 != ""){if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)e.Result = 1;if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)e.Result = -1;e.Handled = true;}if (value1 != "" && value2 == ""){if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)e.Result = -1;if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)e.Result = 1;e.Handled = true;}if (value1 == "" && value2 == ""){if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Ascending)if (e.ListSourceRowIndex1 > e.ListSourceRowIndex2)e.Result = 1;elsee.Result = -1;if (e.SortOrder == DevExpress.Data.ColumnSortOrder.Descending)if (e.ListSourceRowIndex1 > e.ListSourceRowIndex2)e.Result = -1;elsee.Result = 1;e.Handled = true;}
}

demo 源码下载:

http://download.csdn.net/download/u012097590/9990082

效果图:

DevExpress GridView 排序状态下新增行不参与排序相关推荐

  1. GridView合并列下的行单元格的方法

    1.在GridView中要合并单元格,如得到如下效果 可在GridvIew中调的DataBind事件调用下面类中的方法,先在项目的App_Code文件夹下添加下面的类,下面类中写了两个方法,一个是模板 ...

  2. 扩展GridView控件(2) - 复合排序和排序状态提示

    GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [源码下载] 扩展GridView控件(2) - 复合排序和排序状态提示 作者:webab ...

  3. java dos编译命令是什么_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是()...

    [单选题]下列行为中,属于绝对商行为的是 [填空题]汽车故障的变化规律可分为3个阶段,早期故障期. 和 . [填空题]无分电器点火线圈与一般点火线圈不同,其 与 没有连接,为互感作用. [简答题]练习 ...

  4. dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...

    [判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...

  5. dos命令为java程序赋值_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是() (5.0分)_学小易找答案...

    [判断题]run方法是运行线程的主体,若run方法运行结束,线程就消亡了 [单选题]在Java 程序中,下面哪个是不合法的标识符() (5.0分) [其它]请提交实验二压缩包 [单选题]在DOS命令行 ...

  6. devexpress gridview代码设置

    devexpress gridview代码设置 </h2><div class="postbody"> 39 //绑定DataTable40 gridCon ...

  7. GridView 始终显示 Pager 分页行的一种方法

    GridView 是 ASP.NET 2.0 新增加的 Web 控件,拥有比 DataGrid 更多的扩展和改进.使用 GridView 可以很容易的实现数据分页,但是遗憾的是,在缺省情况下,当仅有一 ...

  8. 在ROMMON状态下恢复IOS的方法

    对于网络工程师来说,不小心把IOS删掉或者升级IOS失败,重起后进ROMMON(ROMMON状态是ROM MONITOR的缩写)状态,是比较常见的事.路由器进入ROMMON状态,不能进行正常的路由转发 ...

  9. html行间距1.8em,雅黑字体下WordPress 行高与字符间距最佳实践:1.8em与0.06em

    最近看一下网站的流量统计,发现有几个关键词是一直有很多流量进来的,一个是Win8操作系统的BCD启动项修复解决方案,一个是WordPress程序修改行间距.段落间距的办法.看来WordPress新入门 ...

  10. Visual Studio 2017错误:无法启动程序,在当前状态下操作不合法

    本文翻译自:Visual Studio 2017 error: Unable to start program, An operation is not legal in the current st ...

最新文章

  1. sqlmap绕过d盾_WEBSHELL免杀绕过WAF思路amp;方法(一)
  2. 20万Star的编程学习教程:让你的编码之路事半功倍!
  3. Dubbo面试 - Dubbo通信协议
  4. Android学习笔记(24):进度条组件ProgressBar及其子类
  5. JavaScript 的这个难点,毁掉了多少程序员?
  6. 【java学习之路】(java SE篇)007.常用类
  7. 关于跨域的处理的几种方法的整理
  8. LeetCode之翻转字符串里的单词
  9. postman通过脚本动态获取token 和cookies
  10. 深入理解JAVA中的JNDI注入
  11. 新型博客网站的运营要素分析
  12. Android app支付-银联支付
  13. MacBook Pro(13 英寸,2011 年末)A1278 安装Winows11无声音问题解决(WIN10和WIN11同样的解决方法)
  14. 简单工厂、工厂、抽象工厂
  15. 万代南梦宫面向中国市场推出《太鼓达人》限量版月饼
  16. JavaScript---开通QQ在线客服
  17. Kotlin+Retrofit + MVVM 的网络请求框架的封装
  18. 石墨烯/SiO2复合气凝胶微球/包覆二氧化硅纳米颗粒/载Pt石墨烯中空二氧化硅微球
  19. 通过 Git 将代码提交到 GitHub(上)
  20. 基于matlab的电机运行分析,电机模型分析及拖动仿真:基于MATLAB的现代方法

热门文章

  1. canvas绘图API
  2. 《软件工程》真题考点
  3. Django教程(为什么选择Django框架)
  4. typora主题配置:公众号一键排版
  5. STM32驱动SG90舵机与HC_SR04超声波模块
  6. 2022年新出的Python学习神器,强烈推荐
  7. pytz.exceptions.UnknownTimeZoneError解决办法
  8. java实习第一天日志
  9. swagger注解类说明
  10. 双极性电压测量电路 负电压测量电路 正负电压测量电路 运放OP07运用 加法器 电压跟随器