抛砖引玉——实现LISTVIEW点击COLUMN排序的代码,可实现按时间,字符,数字
来源:互联网 发布:手机号注册查询软件 编辑:程序博客网 时间:2024/05/22 13:54
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Windows.Forms;
using System.Drawing;
namespace LISTVIEWControl
{
/// <summary>
/// Summary description for UserControl1.
/// </summary>
public class EastSpider : System.Windows.Forms.LISTVIEW
{
/// <summary>
/// Required designer variable.
/// </summary>
///
private Comparer myComparer;
private ArrayList colTypes = new ArrayList();
private System.ComponentModel.Container components = null;
/// <summary>
/// Sort Interface
/// </summary>
public class Comparer : IComparer
{
private int COLUMN;
private int sign;
private EastSpider.COLUMNTypeEnum colType;
public Comparer()
{
COLUMN = 0;
sign = 1;
colType = EastSpider.COLUMNTypeEnum.COLUMNTypeText;
}
public int COLUMN
{
set
{
COLUMN = value;
}
get
{
return COLUMN;
}
}
public int Sign
{
set
{
sign = value;
}
get
{
return sign;
}
}
public COLUMNTypeEnum ColType
{
set
{
colType = value;
}
get
{
return colType;
}
}
public int Compare(object o1,object o2)
{
LISTVIEWItem li1 = (LISTVIEWItem)o1;
LISTVIEWItem li2 = (LISTVIEWItem)o2;
string s1,s2;
try
{
if (COLUMN == 0)
{
s1 = li1.Text;
s2 = li2.Text;
//return sign * String.Compare(s1,s2);
}
else
{
s1 = li1.SubItems[COLUMN].Text;
s2 = li2.SubItems[COLUMN].Text;
}
if (s1.Length == 0)
{
if (s2.Length > 0)
{
return (-sign);
}
else
{
return 0;
}
}
else if (s2.Length == 0)
{
return sign;
}
switch (colType)
{
case COLUMNTypeEnum.COLUMNTypeNumber:
long d1 = long.Parse(s1);
long d2 = long.Parse(s2);
if (d1 < d2)
{
return (-sign);
}
else if (d1 > d2)
{
return sign;
}
else
{
return 0;
}
case COLUMNTypeEnum.COLUMNTypeDate:
DateTime t1 = DateTime.Parse(s1);
DateTime t2 = DateTime.Parse(s2);
return sign*DateTime.Compare(t1,t2);
default:
return sign * String.Compare(s1,s2);
}
}
catch
{
return (0);
}
}
}
/// <summary>
/// 排序类型
/// </summary>
[Category("SortType"),Description("The Sort Type of COLUMN you wanted do")]
public enum COLUMNTypeEnum
{
COLUMNTypeText = 0,
COLUMNTypeDate = 1,
COLUMNTypeNumber = 2
}
/// <summary>
/// Clear All Items And COLUMNs
/// </summary>
private void ClearAll()
{
Clear();
ClearCOLUMNs();
}
/// <summary>
/// Clear All Item
/// </summary>
private new void Clear()
{
base.Items.Clear();
}
/// <summary>
/// Clear All COLUMNs And ColType
/// </summary>
private void ClearCOLUMNs()
{
base.COLUMNs.Clear();
colTypes.Clear();
}
public void AddCOLUMN(string caption,COLUMNTypeEnum COLUMNType,HorizontalAlignment ha,int width)
{
COLUMNHeader ch = new COLUMNHeader();
ch.Text = caption;
ch.TextAlign = ha;
ch.Width = width;
base.COLUMNs.Add(ch);
colTypes.Add(COLUMNType);
}
/// <summary>
/// Add Items
/// </summary>
/// <param name="item"></param>
/// <param name="bgcolor"></param>
/// <returns></returns>
public int AddRow(LISTVIEWItem item,Color bgcolor)
{
//LISTVIEWItem li = new LISTVIEWItem(args);
item.UseItemStyleForSubItems = true;
item.BackColor = bgcolor;
Items.Add(item);
return item.Index;
}
/// <summary>
/// 点击事件
/// </summary>
/// <param name="sender"></param>共2页: 上一页 1 [2] 下一页 <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
using System;using System.ComponentModel;
using System.Collections;
using System.Diagnostics;
using System.Windows.Forms;
using System.Drawing;
namespace LISTVIEWControl
{
/// <summary>
/// Summary description for UserControl1.
/// </summary>
public class EastSpider : System.Windows.Forms.LISTVIEW
{
/// <summary>
/// Required designer variable.
/// </summary>
///
private Comparer myComparer;
private ArrayList colTypes = new ArrayList();
private System.ComponentModel.Container components = null;
/// <summary>
/// Sort Interface
/// </summary>
public class Comparer : IComparer
{
private int COLUMN;
private int sign;
private EastSpider.COLUMNTypeEnum colType;
public Comparer()
{
COLUMN = 0;
sign = 1;
colType = EastSpider.COLUMNTypeEnum.COLUMNTypeText;
}
public int COLUMN
{
set
{
COLUMN = value;
}
get
{
return COLUMN;
}
}
public int Sign
{
set
{
sign = value;
}
get
{
return sign;
}
}
public COLUMNTypeEnum ColType
{
set
{
colType = value;
}
get
{
return colType;
}
}
public int Compare(object o1,object o2)
{
LISTVIEWItem li1 = (LISTVIEWItem)o1;
LISTVIEWItem li2 = (LISTVIEWItem)o2;
string s1,s2;
try
{
if (COLUMN == 0)
{
s1 = li1.Text;
s2 = li2.Text;
//return sign * String.Compare(s1,s2);
}
else
{
s1 = li1.SubItems[COLUMN].Text;
s2 = li2.SubItems[COLUMN].Text;
}
if (s1.Length == 0)
{
if (s2.Length > 0)
{
return (-sign);
}
else
{
return 0;
}
}
else if (s2.Length == 0)
{
return sign;
}
switch (colType)
{
case COLUMNTypeEnum.COLUMNTypeNumber:
long d1 = long.Parse(s1);
long d2 = long.Parse(s2);
if (d1 < d2)
{
return (-sign);
}
else if (d1 > d2)
{
return sign;
}
else
{
return 0;
}
case COLUMNTypeEnum.COLUMNTypeDate:
DateTime t1 = DateTime.Parse(s1);
DateTime t2 = DateTime.Parse(s2);
return sign*DateTime.Compare(t1,t2);
default:
return sign * String.Compare(s1,s2);
}
}
catch
{
return (0);
}
}
}
/// <summary>
/// 排序类型
/// </summary>
[Category("SortType"),Description("The Sort Type of COLUMN you wanted do")]
public enum COLUMNTypeEnum
{
COLUMNTypeText = 0,
COLUMNTypeDate = 1,
COLUMNTypeNumber = 2
}
/// <summary>
/// Clear All Items And COLUMNs
/// </summary>
private void ClearAll()
{
Clear();
ClearCOLUMNs();
}
/// <summary>
/// Clear All Item
/// </summary>
private new void Clear()
{
base.Items.Clear();
}
/// <summary>
/// Clear All COLUMNs And ColType
/// </summary>
private void ClearCOLUMNs()
{
base.COLUMNs.Clear();
colTypes.Clear();
}
public void AddCOLUMN(string caption,COLUMNTypeEnum COLUMNType,HorizontalAlignment ha,int width)
{
COLUMNHeader ch = new COLUMNHeader();
ch.Text = caption;
ch.TextAlign = ha;
ch.Width = width;
base.COLUMNs.Add(ch);
colTypes.Add(COLUMNType);
}
/// <summary>
/// Add Items
/// </summary>
/// <param name="item"></param>
/// <param name="bgcolor"></param>
/// <returns></returns>
public int AddRow(LISTVIEWItem item,Color bgcolor)
{
//LISTVIEWItem li = new LISTVIEWItem(args);
item.UseItemStyleForSubItems = true;
item.BackColor = bgcolor;
Items.Add(item);
return item.Index;
}
/// <summary>
/// 点击事件
/// </summary>
/// <param name="sender"></param>共2页: 上一页 1 [2] 下一页 <script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- 抛砖引玉——实现LISTVIEW点击COLUMN排序的代码,可实现按时间,字符,数字
- 实现可拖动排序的ListView-DragListView
- ListView点击列排序的实现
- 文件按时间排序的一个实现思路
- 六句代码实现对文件按时间的重命名,
- ls实现列文件按时间排序
- ls实现列文件按时间排序
- 实现文件按时间排序功能
- ls实现列文件按时间排序
- 实现按数字字符排序
- 可点击列标题可进行排序的ListView控件
- [转载]实现ListView的列标头点击排序功能
- 重写ListView控件,实现点击列头排序的功能
- 点击弹出框,实现可以搜索的ListView排序数据
- 用户控件ListView实现可排序
- Listview中实现点击栏目标题排序
- ListView点击列头排序功能实现
- 点击listview的item实现下级listview
- 在Vs.net中使用MSN即时通讯软件(下)
- 针对初学PHP者的疑难问答(1)
- 批量更新数据
- 针对初学PHP者的疑难问答(2)
- PHP3 'safe_mode' 失效漏洞
- 抛砖引玉——实现LISTVIEW点击COLUMN排序的代码,可实现按时间,字符,数字
- 怎样在PHP中通过ADO调用Asscess数据库和COM程序
- 充分利用 .NET 框架的 PropertyGrid 控件(微软)之一
- 用PHP连mysql和oracle数据库性能比较
- Design Patterns: Solidify Your C# Application Arch
- 用PHP和MySQL保存和输出图片
- webservice结合dhtml的简单例子(一,webservice)
- 据库连接
- Asp.net性能优化总结(一)