C#:ListView点击表头对数据排序

更新时间:2023-07-03 10:08:01 阅读: 评论:0

饼丝怎么炒好吃
C#:ListView点击表头对数据排序
今天写.Net⼤作业时,有⼀个功能是点击ListView的每列的表头时,对整个表的信息按该列进⾏升序或降序排序。我的这个表的数据⽐较特殊,⾥⾯有string,int,float三种数据类型,⽽C#的ListView默认的⽐较⽅法只能把数据当做string来处理,这样的话当对int型数据排序时10就会在2前⾯,对float型数据排序时100.99就会在98.99前⾯。我在⽹上找了⼀些代码,做了⼀些修改,现在可以完美地处理这三种数据。
原始数据图⽚:
当点击RefMarque列时,如果按默认的string类型来排序,结果如下:
可以发现10排在了2前⾯,因为它是先⽐较第⼀位,按ASCII码排序,1就在2前⾯。
对ListView排序算法进⾏了修改和完善。代码如下:
private void listView1_ColumnClick(object nder, ColumnClickEventArgs e){
小数乘法练习题
if (e.Column != sortColumn){
// Set the sort column to the new column.
平静英语sortColumn = e.Column;
/
/ Set the sort order to ascending by default.
listView1.Sorting = SortOrder.Ascending;
}el{
// Determine what the last sort order was and change it.
if (listView1.Sorting == SortOrder.Ascending){全部造句
listView1.Sorting = SortOrder.Descending;
}el{
listView1.Sorting = SortOrder.Ascending;
}
}
// Call the sort method to manually sort.
团圆饭
listView1.Sort();
// Set the ListViewItemSorter property to a new ListViewItemComparer
// object.
this.listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, listView1.Sorting);
}
⽐较⽤的类
class ListViewItemComparer : IComparer{
对待工作认真负责
private int col;
private SortOrder order;
public ListViewItemComparer()
那就这样吧动力火车{
col = 0;
order = SortOrder.Ascending;
}
public ListViewItemComparer(int column, SortOrder order)
{
col = column;
}
public int Compare(object x, object y)
{
int returnVal = -1;
float a = 0, b = 0;
if (float.TryPar(((ListViewItem)x).SubItems[col].Text, out a) && float.TryPar(((ListViewItem)y).SubItems[col].Text, out b))        {
returnVal = a >= b ? (a == b ? 0 : 1) : -1;
if (order == SortOrder.Descending) {
returnVal *= -1;
}
}
el{
returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,
((ListViewItem)y).SubItems[col].Text);
// Determine whether the sort order is descending.
if (order == SortOrder.Descending){
// Invert the value returned by String.Compare.
returnVal *= -1;
}
}
return returnVal;
}
}
因病休学申请书
如果要处理的数据⾥没有float类型,上⾯类⾥的a,b可以定义成int型,下⾯的float.TryPar换成int.TryPar

本文发布于:2023-07-03 10:08:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1065811.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   排序   类型   处理
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图