Fork me on GitHub

DevGridControl中GridView排序问题

在对表格数据源为字符串类型的列排序时,为了实现按照值大小进行排序,需要进行以下处理:

先设置该列SortMode属性为自定义属性
gridColumn1.SortMode = DevExpress.XtraGrid.ColumnSortMode.Custom;

然后在事件CustomColumnSort中实现

复制代码
        void gdv_CustomColumnSort(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnSortEventArgs e)
        {
            if (e.Column != null && e.Value1 != null && e.Value2 != null)
            {
                string value1 = e.Value1.ToString();
                string value2 = e.Value2.ToString();
                int result = Comparer.Default.Compare
                    (ConvertToDecimal(value1, e.SortOrder), ConvertToDecimal(value2, e.SortOrder));
                e.Result = result;
                e.Handled = true;
            }
        }

        private decimal ConvertToDecimal(string input, DevExpress.Data.ColumnSortOrder sortOrder)
        {
            decimal result = 0;
            if (string.IsNullOrWhiteSpace(input) || input.Equals("**") || input.Equals("--"))
                result = sortOrder == DevExpress.Data.ColumnSortOrder.Ascending ? 9999 : -9999;
            else
                decimal.TryParse(input, out result);
            return result;
        }
复制代码
 
相关问题:
 1)某一列根据int类型值对应显示图片,但是在排序时并不是按照int值排序。
 设置该列的SortMode属性为按照值排序
gridColumn1.SortMode = DevExpress.XtraGrid.ColumnSortMode.Value;

 

posted @   LikeHeart  阅读(7393)  评论(2编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示