listview如何对数字排序?如何在Column显示那个三角

主  题:  listview如何对数字进行排序? 还有 如何在Column显示那个三角?
作  者:  bborn (五六七嗒八)
等  级:  ^^
信 誉 值:  105
所属论坛:  .NET技术 C#
问题点数:  20
回复次数:  8
发表时间:  2003-9-22 12:46:16

msdn上给的排序例子 如下
是把数字当字符串来进行排序的
比如从小到大排序的话 11会排在9的前面
因为9>1 而不是和11来比较
有没有办法来让它进行数字比较?
还有 如果排序的时候 怎么在Column显示出上三角或者下三角
来指示上排序或者下排序

class ListViewItemComparer : IComparer
{
    private int col;
    public ListViewItemComparer()
    {
        col=0;
    }
    public ListViewItemComparer(int column)
    {
        col=column;
    }
    public int Compare(object x, object y)
    {
        return String.Compare( ((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
    }
}


回复人: linuxnew(johny) ( 一级(初级)) 信誉:100 2003-9-22 13:53:26 得分:5

要自己写排序方法

回复人: bborn(五六七嗒八) ( 二级(初级)) 信誉:105 2003-9-22 23:46:56 得分:0

有例子吗?

回复人: Reeezak(收破烂的) ( 三级(初级)) 信誉:100 2003-9-23 0:18:49 得分:8

自己写代码吧
不是很难的
数据结构里面N多排序算法
随便找一种就可以了
只不过是从C或者PASCAL移植到C#而已

回复人: bborn(五六七嗒八) ( 二级(初级)) 信誉:105 2003-9-23 0:32:11 得分:0

这样 如何判断用户点击的是不是我要排序的那一栏了?

假如我分 姓名 年龄 性别 对于年龄这一栏我想用自己的排序
怎么判断用户点击了这一栏

还有 如何把 字符串类型的数字转换成 int 型

回复人: Reeezak(收破烂的) ( 三级(初级)) 信誉:100 2003-9-23 0:40:50 得分:0

Int32.Parse(string)

对于点击Column的问题,我也正在解决,跟你的问题差不多
估计今天晚上就可以搞掂
等下如果我解决了,还没有人回答的话,我就来说
^_^

回复人: eggh(eggh) ( 一级(初级)) 信誉:100 2003-9-23 8:27:23 得分:1

上www.codeproject.com有现成的例子.

回复人: bborn(五六七嗒八) ( 二级(初级)) 信誉:105 2003-9-24 12:44:22 得分:0

不给个地址?

回复人: AsongY(独狼) ( 一级(初级)) 信誉:100 2003-9-24 17:13:22 得分:6

listview的受保护的方法:

protected virtual void OnColumnClick(
   ColumnClickEventArgs e
)

中可以得到你所点击的column(e.Column是你所点击的column的index)。

该问题已经结贴 ,得分记录: linuxnew (5)、 Reeezak (8)、 eggh (1)、 AsongY (6)、

Contributors: FHL