您的位置:首页 > 其它

ListView 日期,数字,字符排序

2007-09-08 09:33 239 查看
在http://blog.csdn.net/spkl1/archive/2007/01/09/1478400.aspx的基础上有所改动!

可以,将多个listView同时关联到这一个事件,判断是那个listView的排序,再执行排序!

如有侵权,请与我联系!

private void listView_ColumnClick(object sender, ColumnClickEventArgs e)

{

int sortColumn = e.Column;

ListView listView = (ListView)sender;

if (listView.Name == "listView2")

{

if (listView2.Sorting == SortOrder.Ascending)

listView2.Sorting = SortOrder.Descending;

else

listView2.Sorting = SortOrder.Ascending;

this.listView2.ListViewItemSorter = new ListViewItemComparer(e.Column, listView2.Sorting);

}

else if (listView.Name == "listView3")

{

if (listView3.Sorting == SortOrder.Ascending)

listView3.Sorting = SortOrder.Descending;

else

listView3.Sorting = SortOrder.Ascending;

this.listView3.ListViewItemSorter = new ListViewItemComparer(e.Column, listView3.Sorting);

}

else if (listView.Name == "listView4")

{

if (listView4.Sorting == SortOrder.Ascending)

listView4.Sorting = SortOrder.Descending;

else

listView4.Sorting = SortOrder.Ascending;

this.listView4.ListViewItemSorter = new ListViewItemComparer(e.Column, listView4.Sorting);

}

else if (listView.Name == "listView5")

{

if (listView5.Sorting == SortOrder.Ascending)

listView5.Sorting = SortOrder.Descending;

else

listView5.Sorting = SortOrder.Ascending;

this.listView5.ListViewItemSorter = new ListViewItemComparer(e.Column, listView5.Sorting);

}

}

class ListViewItemComparer : System.Collections.IComparer

{

private int col;

private SortOrder order;

public ListViewItemComparer()

{

col = 0;

order = SortOrder.Ascending;

}

public ListViewItemComparer(int column, SortOrder order)

{

col = column;

this.order = order;

}

public int Compare(object x, object y)

{

int returnVal;

decimal w;

DateTime r;

bool k = Decimal.TryParse(((ListViewItem)x).SubItems[col].Text, out w);

bool s = DateTime.TryParse(((ListViewItem)x).SubItems[col].Text, out r);

if (k == true && order != SortOrder.Descending)//数字正排序

{

Decimal k1 = Int32.Parse(((ListViewItem)x).SubItems[col].Text);

Decimal k2 = Int32.Parse(((ListViewItem)y).SubItems[col].Text);

if (k2 > k1)

returnVal = -1;

if (k2 < k1)

returnVal = 1;

else

returnVal = 0;

}

else

{

if (s == true)//时间排序

{

System.DateTime firstDate = DateTime.Parse(((ListViewItem)x).SubItems[col].Text);

System.DateTime secondDate = DateTime.Parse(((ListViewItem)y).SubItems[col].Text);

returnVal = DateTime.Compare(firstDate, secondDate);

}

else//字符排序

{

returnVal = String.Compare(((ListViewItem)x).SubItems[col].Text,

((ListViewItem)y).SubItems[col].Text);

}

}

if (order == SortOrder.Descending)

{

if (k == true)//数字倒排序

{

System.Int32 k3 = Int32.Parse(((ListViewItem)x).SubItems[col].Text);

System.Int32 k4 = Int32.Parse(((ListViewItem)y).SubItems[col].Text);

if (k3 > k4)

returnVal = 1;

if (k3 < k4)

returnVal = -1;

else

returnVal = 0;

}

returnVal *= -1;

}

return returnVal;

}

}
function __RP_Callback_Helper(str, strCallbackEvent, splitSize, func){var event = null;if (strCallbackEvent){event = document.createEvent('Events');event.initEvent(strCallbackEvent, true, true);}if (str && str.length > 0){var splitList = str.split('|');var strCompare = str;if (splitList.length == splitSize)strCompare = splitList[splitSize-1];var pluginList = document.plugins;for (var count = 0; count < pluginList.length; count++){var sSrc = '';if (pluginList[count] && pluginList[count].src)sSrc = pluginList[count].src;if (strCompare.length >= sSrc.length){if (strCompare.indexOf(sSrc) != -1){func(str, count, pluginList, splitList);break;}}}}if (strCallbackEvent)document.body.dispatchEvent(event);}function __RP_Coord_Callback(str){var func = function(str, index, pluginList, splitList){pluginList[index].__RP_Coord_Callback = str;pluginList[index].__RP_Coord_Callback_Left = splitList[0];pluginList[index].__RP_Coord_Callback_Top = splitList[1];pluginList[index].__RP_Coord_Callback_Right = splitList[2];pluginList[index].__RP_Coord_Callback_Bottom = splitList[3];};__RP_Callback_Helper(str, 'rp-js-coord-callback', 5, func);}function __RP_Url_Callback(str){var func = function(str, index, pluginList, splitList){pluginList[index].__RP_Url_Callback = str;pluginList[index].__RP_Url_Callback_Vid = splitList[0];pluginList[index].__RP_Url_Callback_Parent = splitList[1];};__RP_Callback_Helper(str, 'rp-js-url-callback', 3, func);}function __RP_TotalBytes_Callback(str){var func = function(str, index, pluginList, splitList){pluginList[index].__RP_TotalBytes_Callback = str;pluginList[index].__RP_TotalBytes_Callback_Bytes = splitList[0];};__RP_Callback_Helper(str, null, 2, func);}function __RP_Connection_Callback(str){var func = function(str, index, pluginList, splitList){pluginList[index].__RP_Connection_Callback = str;pluginList[index].__RP_Connection_Callback_Url = splitList[0];};__RP_Callback_Helper(str, null, 2, func);}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐