DevExpress GridView 排序状态下新增行不参与排序
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 排序状态下新增行不参与排序相关推荐
- GridView合并列下的行单元格的方法
1.在GridView中要合并单元格,如得到如下效果 可在GridvIew中调的DataBind事件调用下面类中的方法,先在项目的App_Code文件夹下添加下面的类,下面类中写了两个方法,一个是模板 ...
- 扩展GridView控件(2) - 复合排序和排序状态提示
GridView既强大又好用.为了让它更强大.更好用,我们来写一个继承自GridView的控件. [索引页] [源码下载] 扩展GridView控件(2) - 复合排序和排序状态提示 作者:webab ...
- java dos编译命令是什么_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是()...
[单选题]下列行为中,属于绝对商行为的是 [填空题]汽车故障的变化规律可分为3个阶段,早期故障期. 和 . [填空题]无分电器点火线圈与一般点火线圈不同,其 与 没有连接,为互感作用. [简答题]练习 ...
- dos下编写java程序_在DOS命令行状态下,如果命令java Hello成功运行了程序,那么下面哪些叙述是正确的()...
[判断题]在JDK命令行开发工具中,用编译程序javac.exe编译生成的文件是二进制可执行文件. [论述题]你认为堂吉诃德是一个怎样的人? [简答题]练习函数 [单选题]下列制度体现商法提高交易效率 ...
- dos命令为java程序赋值_在DOS命令行状态下,如果源程序HelloWorld.java在当前目录下,那么编译该程序的命令是() (5.0分)_学小易找答案...
[判断题]run方法是运行线程的主体,若run方法运行结束,线程就消亡了 [单选题]在Java 程序中,下面哪个是不合法的标识符() (5.0分) [其它]请提交实验二压缩包 [单选题]在DOS命令行 ...
- devexpress gridview代码设置
devexpress gridview代码设置 </h2><div class="postbody"> 39 //绑定DataTable40 gridCon ...
- GridView 始终显示 Pager 分页行的一种方法
GridView 是 ASP.NET 2.0 新增加的 Web 控件,拥有比 DataGrid 更多的扩展和改进.使用 GridView 可以很容易的实现数据分页,但是遗憾的是,在缺省情况下,当仅有一 ...
- 在ROMMON状态下恢复IOS的方法
对于网络工程师来说,不小心把IOS删掉或者升级IOS失败,重起后进ROMMON(ROMMON状态是ROM MONITOR的缩写)状态,是比较常见的事.路由器进入ROMMON状态,不能进行正常的路由转发 ...
- html行间距1.8em,雅黑字体下WordPress 行高与字符间距最佳实践:1.8em与0.06em
最近看一下网站的流量统计,发现有几个关键词是一直有很多流量进来的,一个是Win8操作系统的BCD启动项修复解决方案,一个是WordPress程序修改行间距.段落间距的办法.看来WordPress新入门 ...
- Visual Studio 2017错误:无法启动程序,在当前状态下操作不合法
本文翻译自:Visual Studio 2017 error: Unable to start program, An operation is not legal in the current st ...
最新文章
- sqlmap绕过d盾_WEBSHELL免杀绕过WAF思路amp;方法(一)
- 20万Star的编程学习教程:让你的编码之路事半功倍!
- Dubbo面试 - Dubbo通信协议
- Android学习笔记(24):进度条组件ProgressBar及其子类
- JavaScript 的这个难点,毁掉了多少程序员?
- 【java学习之路】(java SE篇)007.常用类
- 关于跨域的处理的几种方法的整理
- LeetCode之翻转字符串里的单词
- postman通过脚本动态获取token 和cookies
- 深入理解JAVA中的JNDI注入
- 新型博客网站的运营要素分析
- Android app支付-银联支付
- MacBook Pro(13 英寸,2011 年末)A1278 安装Winows11无声音问题解决(WIN10和WIN11同样的解决方法)
- 简单工厂、工厂、抽象工厂
- 万代南梦宫面向中国市场推出《太鼓达人》限量版月饼
- JavaScript---开通QQ在线客服
- Kotlin+Retrofit + MVVM 的网络请求框架的封装
- 石墨烯/SiO2复合气凝胶微球/包覆二氧化硅纳米颗粒/载Pt石墨烯中空二氧化硅微球
- 通过 Git 将代码提交到 GitHub(上)
- 基于matlab的电机运行分析,电机模型分析及拖动仿真:基于MATLAB的现代方法