您的位置:首页 > 其它

ListView列排序功能实现

2007-01-25 15:11 316 查看
#region/***lv列排序***/
private void ColumnClick(object o, ColumnClickEventArgs e)
{
try
{
lv_examView.ListViewItemSorter = new ListViewItemComparer(e.Column,lv_examView.Sorting);
lv_examView.Sort();
if(lv_examView.Sorting == SortOrder.Ascending)
lv_examView.Sorting = SortOrder.Descending;
else
lv_examView.Sorting = SortOrder.Ascending;
}
catch(Exception err)
{
MessageBox.Show(this,err.Message,"列排序",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
#endregion

#region/***列排序类***/
class ListViewItemComparer : IComparer
{
private int col;
private SortOrder is_sortOrder = SortOrder.Ascending;
public ListViewItemComparer()
{
col=0;
}
public ListViewItemComparer(int column, SortOrder sortOrder)
{
col=column;
is_sortOrder = sortOrder;
}
public int Compare(object x, object y)
{
int result=0;
try
{

result= String.Compare(((ListViewItem)x).SubItems[col].Text,((ListViewItem)y).SubItems[col].Text);

// switch (col)
// {
//
// case 3 :
// string text=((ListViewItem)x).SubItems[col].Text.ToString();
// string texty=((ListViewItem)y).SubItems[col].Text.ToString();
// decimal dm1=ChangeBytesBack(text);
// decimal dm2=ChangeBytesBack(texty);
// result= Decimal.Compare(dm1,dm2);
// break;
//
// default :
// result= String.Compare(((ListViewItem)x).SubItems[col].Text,((ListViewItem)y).SubItems[col].Text);
// break;
// }
}
catch(Exception err)
{
throw new Exception(err.Message);
}
if (is_sortOrder == SortOrder.Descending)
return result;
else
return -result;
}

//字节转换
private decimal ChangeBytesBack(string oldstr)
{
decimal filelength=0;
try
{
string strExplain=oldstr.Substring(oldstr.Length-2);
decimal lDSize = Convert.ToDecimal(oldstr.Substring(0,oldstr.Length-3));

try
{
switch(strExplain)
{
case "KB":
filelength=lDSize*1024;
break;
case "MB":
filelength=lDSize*1024*1024;
break;
case "GB":
filelength=lDSize*1024*1024*1024;
break;
}

}
catch (Exception err)
{
throw new Exception(err.Message);
}
}
catch(Exception err)
{
throw new Exception(err.Message);
}

return filelength;
}

#endregion
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐