datagridview 按数字 排序

 int val1, val2;
            int.TryParse(e.CellValue1.ToString().Trim(), out  val1);
            int.TryParse(e.CellValue2.ToString().Trim(), out  val2);

            if (val1 < val2) e.SortResult = -1;
            else if (val1 == val2) e.SortResult = 0;
            else e.SortResult = 1;
            e.Handled = true;

 

转载于:https://www.cnblogs.com/Iyce/archive/2012/10/30/2745944.html

DataGridView 控件在 .NET Framework 中用于显示表格数据,它支持混合类型的列,即可以包含数字、文本和其他数据类型。当需要对包含数字和文本的列进行排序时,你可以通过设置 DataGridView 的 SortExpression 属性来进行操作。以下是步骤: 1. 首先,确定你想要排序的列,例如,假设有一个名为 "Amount" 的数字列和一个名为 "Description" 的文本列。 2. 在代码中,获取 DataGridView 控件的引用,比如: ```csharp DataGridView dataGridView = (DataGridView)sender; // 如果是从事件处理程序中获取 ``` 3. 然后,找到你想排序的那一列。如果是整数列(如 Amount),可以使用 `dataGridView.Columns["Amount"]`,如果是字符串列(如 Description),则为 `dataGridView.Columns["Description"]`。 4. 对于排序,你可以使用 `Sort()` 或 `SortDescriptions` 属性。例如,如果你想按数字列降序排序: ```csharp DataGridViewCellStyle numericCellStyle = dataGridViewCellStyle.GetStyle(DataGridViewColumnIndex.Ascending); numericCellStyle.Format = "N0"; // 格式化数字以便于排序 DataGridViewColumn amountColumn = dataGridView.Columns["Amount"]; amountColumn.DefaultCellStyle = numericCellStyle; dataGridView.Sort(amountColumn, ListSortDirection.Descending); // 对Amount列进行降序排序 ``` 5. 对于文本列,如果需要基于文本内容进行自定义排序,你可以创建一个自定义的比较器(IComparer),然后传递给 `SortDescriptions`: ```csharp string comparerExpression = "Description"; IComparer comparer = new MyCustomTextComparator(); // 自定义比较器实现 SortDescription sortDesc = new SortDescription(comparerExpression, ListSortDirection.Descending); dataGridView.SortDescriptions.Clear(); dataGridView.SortDescriptions.Add(sortDesc); dataGridView.Sort(); // CustomTextComparator.cs: class MyCustomTextComparator : IComparer { public int Compare(object x, object y) { // 实现你的自定义比较逻辑 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值