添加表头单击事件
private void listView1_ColumnClick( object sender, ColumnClickEventArgs e)
{
if (listView1.Columns[e.Column].Tag == null )
{
listView1.Columns[e.Column].Tag = true ;
}
bool tabK = ( bool )listView1.Columns[e.Column].Tag;
if (tabK)
{
listView1.Columns[e.Column].Tag = false ;
}
else
{
listView1.Columns[e.Column].Tag = true ;
}
listView1.ListViewItemSorter = new ListViewSort(e.Column, listView1.Columns[e.Column].Tag);
//指定排序器并传送列索引与升序降序关键字
listView1.Sort(); //对列表进行自定义排序
}
排序用到的类
public class ListViewSort : IComparer
{
private int col;
private bool descK;
public ListViewSort()
{
col = 0;
}
public ListViewSort( int column, object Desc)
{
descK = ( bool )Desc;
col = column; //当前列,0,1,2...,参数由ListView控件的ColumnClick事件传递
}
public int Compare( object x, object y)
{
int tempInt = String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
if (descK)
{
return -tempInt;
}
else
{
return tempInt;
}
}
}
注意:
有的会报[错误 CS0305: 使用泛型 类型[System.Collections.Generic.IComparer<T>]需要 1 个类型参数]
这时只需要using System.Collections.Generic;改为using System.Collections; 即可。
原文链接:http://HdhCmsTest194nb测试数据/?post=50
dy("nrwz");
查看更多关于C# ListView 点击表头对数据进行排序功能的实现代码的详细内容...