怎么写ListView使之象DateGrid一样点击某一列的头,按照这一列排序。哪为达人帮帮忙啊。或者给你相关的内容也可以的

解决方案 »

  1.   

    在<headTemplate>中加入LinkButton,自己写代码处理。
      

  2.   

    在Winform下可以这么处理:
    private int iColumn=0;
    private bool iOrder=false;
    private void MyListView_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
    {
    if(iColumn==e.Column)
    {
    iOrder=!iOrder;
    }
    else
    {
    iOrder=true;
    }
    MyListView.Sorting=iOrder?SortOrder.Ascending:SortOrder.Descending;
    MyListView.Sort();
    MyListView.ListViewItemSorter=new ListViewItemComparer(e.Column,MyListView.Sorting);
    iColumn=e.Column;
    }class ListViewItemComparer : IComparer 
    {
    private int col;
    private SortOrder _order;
    public ListViewItemComparer() 
    {
    col=0;
    this._order=SortOrder.Ascending;
    }
    public ListViewItemComparer(int column,SortOrder order) 
    {
    col=column;
    this._order=order;
    }
    public int Compare(object x, object y) 
    {
    int returnVal=-1;
    returnVal=String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    if(_order==SortOrder.Descending)
    {
    returnVal *=-1;
    }
    return returnVal;
    }
    }
    MSDN里面有例子的。
      

  3.   

    实现
    class ListViewItemComparer : IComparer 
    IComparer 接口....
      

  4.   

    看了就清楚了,主要是实现IComparer接口,至于比较的规则就由你自己的方法实现。
    http://www.microsoft.com/china/MSDN/library/netFramework/netframework/NFdnwinformslistviewsort.mspx
    http://www.microsoft.com/china/MSDN/library/enterprisedevelopment/softwaredev/dnwinforms.mspx
      

  5.   

    新建一个类,实现ICompare接口
    ListViewItemComparer 就是自定义的类 参数是列名
    list.ListViewItemSorter = new ListViewItemComparer(e.Column)
    list.Sort()
    http://search.csdn.net/Expert/topic/2368/2368735.xml?temp=.857937