使用gridview的时候,点击列标题栏的时候会自动进行排序,但排列是按照字符的大小进行排序的,如:
1
2
3
11
21
点击排序后为:
1
11
2
21
3
怎么样使结果按照数字大小进行排序啊:
1
2
3
11
21
gridview 排序
1
2
3
11
21
点击排序后为:
1
11
2
21
3
怎么样使结果按照数字大小进行排序啊:
1
2
3
11
21
gridview 排序
解决方案 »
- treeview的链接问题,望高手回答,谢谢!
- asp.net 数据库连接问题!
- girdview能否做分类汇总的表格?
- 跳转页面并控制页面大小
- 怎样判断IFrame内加载的页面是否出现错误?
- 高分讨论啊,,,,,,,,,,来者有分啊!!!!!!!!!!!!!!!!!!
- (求助)我用ASP.NET写的第一个邮件发送程序遇到的问题
- 我装了IIS后调试ASP.NET源程序时总是报错
- 非常奇怪的问题,估计你也从未遇过,欢迎进来解答
- 招熟悉VS.net开发环境的程序员
- Html.BeginForm("UploadVideoInfo", "Admin", FormMethod.Post, new { onsubmit = "re
- visble=“false”与style=“display:none”的区别
查询的时候转换成int类型先。
SELECT CONVERT(INT,列名) FROM 表名;
这样绑定GridView后点击标题的时候才会按照数字大小进行排列。
应该可以,具体我没试过.。
GridView不是有个数据源吗,数据源一般是个DataTable,可以设置DataTable的某列的类型为int型,前提是你在GridView中数据输入完成后重新绑定GridView。
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();
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的排序方法。
为何拿一个String的数据来做排序