C# ListView排序 已字符和数值排序
来源:互联网 发布:网络配线架的作用 编辑:程序博客网 时间:2024/05/30 23:37
private int CurrentColumn = -1; //记录上次点击的列号
private bool b_Convert = false; //记录正逆序信息
private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if(e.Column == CurrentColumn)
{
b_Convert = ! b_Convert;
if(e.Column == 3 ||e.Column == 0) //假设第一列和第四列为数值列
this.listView1.ListViewItemSorter = new SortBySubItem(e.Column,b_Convert,1);//数值排序
else
this.listView1.ListViewItemSorter = new SortBySubItem(e.Column,b_Convert);//字符排序
}
else
{
CurrentColumn = e.Column;
b_Convert = false;
if(e.Column == 3||e.Column == 0)
this.listView1.ListViewItemSorter = new SortBySubItem(e.Column,b_Convert,1);
else
this.listView1.ListViewItemSorter = new SortBySubItem(e.Column,b_Convert);
}
}
}
public class SortBySubItem : System.Collections.IComparer
{
private int m_Column = 0;
private int m_SortType = 0;//排序类型
private bool m_asc = true;
public SortBySubItem(int Column,bool bAsc)
{
m_Column = Column;
m_asc = bAsc;
}
public SortBySubItem(int Column,bool bAsc, int SortType)
{
m_Column = Column;
m_SortType = SortType;
m_asc = bAsc;
}
int IComparer.Compare(object x, object y)
{
string item1 = ((ListViewItem)x).SubItems[m_Column].Text.Trim();
string item2 = ((ListViewItem)y).SubItems[m_Column].Text.Trim();
int intSort = 0;
if(!m_asc)//反序
{
string temp = item1;
item1 = item2;
item2 = temp;
}
if(m_SortType == 0) //字符排序
intSort = String.Compare(item1,item2);
else //数值排序
{
double str1 = 0;
double str2 = 0;
if(item1 == "")//为空设置为最小
return 1;
else if(item2 == "")
return 0;
try
{
str1 = double.Parse(item1);
str2 = double.Parse(item2);
}
catch
{
//转换出错
return 0;
}
if(str1 >=str2)
return 0;
else
return 1;
}
return intSort;
}
}
- C# ListView排序 已字符和数值排序
- C# ListView排序 默认已字符排序
- C# ListView排序
- c# ListView排序
- C# ListView排序
- c# listview 排序
- QTableWidget 按数值或字符排序
- Python QTableWidget 按数值或字符排序
- c# listview点击标题排序
- C#中listview实现排序
- c# winform listview 拖放排序
- C# listview实现排序[存档]
- C# winform中listview排序
- 对混合数值,字符,null的字段进行排序
- C#冒泡排序、选择排序、插入排序和希尔排序
- c#中listview控件实现排序功能
- C# ListView点击列头进行排序
- C# WinForm的ListView的列排序
- 【转】主板上的电压符号:vdd,vddq,5vsb,3.3sb,vcc3.3,Vdimm
- C#程序打包与部署
- C# ListView排序 默认已字符排序
- 跪求解决java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl
- 使用ps分隔图片,形成拼图的效果
- C# ListView排序 已字符和数值排序
- Folder Sniffer
- quake3源码分析(五)
- SQLServer 2005中列所有存储过程方法
- 系统存储过程
- 快速排序
- 设计模式学习1 Singleton
- java读取ApplicationResources.properties资源文件
- 一个奇怪的tomcat错误的解决