网站首页 | 网页制作 | 网络编程 | 图形图象 | 冲浪宝典 | 操作系统 | 软件教学 | 网络安全 | 认证考试 | 下载中心 | 游戏下载
| 网络编程首页 | ASP | ASP.NET | PHP | JSP | C# | Delphi | Java | C/C++ | XML | SMS | VC | VB | 数据库 |
您现在的位置: 超人气学院 >> 网络编程 >> ASP.NET >> asp.net教程 >> 文章正文 用户登录 新用户注册
如何对ListView的项进行排序           
如何对ListView的项进行排序
作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-8 22:24:58

如何对ListView的项进行排序   

     当您使用资源浏览器查看文件时,您可以随心所欲的按名称、大小、类型及修改日期不同的列对文件进行大小排序。.Net提供的ListView组件没有直接提供这种功能,但要实现并不难。
    ListView.Sort()方法的功能是“对列表视图的项进行排序”,可当您调用它时却什么也没有发生,原因是您没有为listView1.ListViewItemSorter指定排序器。所以,首先必须写一个排序类。
public class mySorter:IComparer
{
private Comparer comparer;
private int sortColumn;
private SortOrder sortOrder;
public mySorter()
{
sortColumn=0;
sortOrder=SortOrder.None;
comparer=Comparer.Default;
}
//指定进行排序的列
public int SortColumn
{
get {return sortColumn;}
set {sortColumn=value;}
}
//指定按升序或降序进行排序
public SortOrder SortOrder
{
get {return sortOrder;}
set {sortOrder=value;}
}
public int Compare(object x,object y)
{
int CompareResult;
ListViewItem itemX=(ListViewItem)x;
ListViewItem itemY=(ListViewItem)y;
//在这里您可以提供自定义的排序
CompareResult=comparer.Compare(itemX.SubItems[this.sortColumn].Text,itemY.SubItems[this.sortColumn].Text);
if (this.SortOrder==SortOrder.Ascending)
return CompareResult;
else
if (this.SortOrder==SortOrder.Descending)
return (-CompareResult);
else
return 0;
}
}
  

    如何使用这个类,很简单。新建一个Windows应用程序,加入ListView组件listView1并将其View属性设为Details。

//加入排序类
private mySorter sorter;
//修改窗体构造函数
public Form1()
{
InitializeComponent();
sorter=new myColumnSorter();
//为ListViewItemSorter指定排序类
this.listView1.ListViewItemSorter=sorter;
sorter.SortOrder=SortOrder.Ascending;
}
//给单击表头事件添加代码
private void listView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
{
if (e.Column==this.sorter.SortColumn)
{
if (this.sorter.SortOrder==SortOrder.Ascending)
this.sorter.SortOrder=SortOrder.Descending;
else
if (this.sorter.SortOrder==SortOrder.Descending)
this.sorter.SortOrder=SortOrder.Ascending;
else
return;
}
else
{
this.sorter.SortColumn=e.Column;
}
this.listView1.Sort();
}
   怎么样,效果不错吧,如果您需要自定义排序,那么您可以修改排序器的Compare()方法。



[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda    责任编辑:kinda 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    专 题 栏 目
    最 新 热 门
  • 此栏目下没有热点文章
  • 相 关 文 章
    Java初学者如何迈出AOP第一
    在eclipse中如何连接CVSse
    如何实现Struts数据库应用
    如何实现Struts数据库应用
    如何实现Struts数据库应用
    如何在Struts数据库应用程
    如何在Struts数据库应用程
    如何迅速成为Java高手[转]
    Nocodes,Noreading-----论
    Eclipse如何使用版本控制(
    如何在Java应用程序中读取
    XP精华-如何使Java项目获得
    如何封锁您的(或打开别人
    如何生成serialVersionID?
    XP精华-----如何使Java项目
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)