首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

如何让gridview按照数字的大小排列

2013-02-18 
怎么让gridview按照数字的大小排列使用gridview的时候,点击列标题栏的时候会自动进行排序,但排列是按照字

怎么让gridview按照数字的大小排列
使用gridview的时候,点击列标题栏的时候会自动进行排序,但排列是按照字符的大小进行排序的,如:
1
2
3
11
21
点击排序后为:
1
11
2
21
3
怎么样使结果按照数字大小进行排序啊:
1
2
3
11
21
gridview?排序
[解决办法]
你的sql里这列的数据类型肯定是Nvarchar的,
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进行排列。
[解决办法]
order by cast(colname as int)
[解决办法]
先转换为int
[解决办法]

引用:
引用:你的sql里这列的数据类型肯定是Nvarchar的,
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进行排列。
不是数据库里面的,比如自己输入到gridview里面的数字,会按照数字的大小排列不?
        ……
那就自己写代码将输入的字符串转为数字然后排序
[解决办法]
引用:
引用:你的sql里这列的数据类型肯定是Nvarchar的,
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进行排列。
不是数据库里面的,比如自己输入到gridview里面的数字,会按照数字的大小排列不?
        ……


应该可以,具体我没试过.。
GridView不是有个数据源吗,数据源一般是个DataTable,可以设置DataTable的某列的类型为int型,前提是你在GridView中数据输入完成后重新绑定GridView。
[解决办法]
  DataTable dt = new DataTable();
            dt.Columns.Add("产品", typeof(int));
ViewState["SortOrder"] = "产品";
                    ViewState["OrderDire"] = "ASC";

 DataTable dt = GetData();//获取DataTable
                DataView view = dt.DefaultView;
                string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
                view.Sort = sort;
                GridView1.DataSource = view;
                GridView1.DataBind();
[解决办法]
如果只是实现简单的可以参考datatable的compute

如果需要好的效果网上有jquery的插件
[解决办法]
先按数值的位数排序,再按数值的大小排序,是否好实现呢。
[解决办法]
1.在数据库里面先排好序
2.在后台重构获取的数据源,比如:
int row = ds.Tables[1].Rows.Count;
            ds.Tables[1].Columns.Add("NoLi");
            for (int i = 0; i < row; i++)
            {
                ds.Tables[1].Rows[i]["NoLi"] = (i + 1).ToString();


            }
            this.rpt_Address.DataSource = ds.Tables[1];
            this.rpt_Address.DataBind();


把 NoLi列绑定,原先的那个隐藏到hiden里面或者不要
[解决办法]
指定gridview的coulmn为int类型。
[解决办法]
引用:
引用:引用:引用:你的sql里这列的数据类型肯定是Nvarchar的,
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进行排列。
不是数据库里面的,比如自己输……


那貌似只能按字符串的排序方式比较了。
不知道能不能重写GridView的排序方法。
[解决办法]
绑定的时候把这个字段转成数字类型 就可以了。。
[解决办法]
引用:
引用:引用:引用:引用:你的sql里这列的数据类型肯定是Nvarchar的,
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进……


这太纠结了
再增加一列 用来做排序用 何必去扯太多的业务


[解决办法]
 其次 在设计排序的问题上 最初数据设计都有问题
 为何拿一个String的数据来做排序 

热点排行