当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > DataGrid 中双向排序的一种办法

ASP.NET
在word中如何控制graph控件
把一个int数组的数字从小到大排列(C#)
Asp组件高级入门与精通系列之三
连接MYSQL数据库的方法及示例
SharePoint Portal Server之常见问题
软件开发中运用到的编号
VB程序员眼中的C#7
公农历转换VB类
VB程序员眼中的C#6
优化VB.NET应用程序的性能1
C#初学乍练-文本替换工具命令行版
如何得到某集合的所有子集合
VB程序员眼中的C#3
Shared Source CLI Essentials第一章第二部分
在ASP.NET使用javascript的一点小技巧
用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败解决方法
开始使用SQLServer2005,没用过MSDE,一开始还不知道怎么下手呢,呵呵
我的ASP.net学习历程有关于.dll文件的迷惑
在图片上写字 C#
Shared Source CLI Essentials第一章第一部分

ASP.NET 中的 DataGrid 中双向排序的一种办法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 68 ::
收藏到网摘: n/a


在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,呵呵
主要是用DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下:
private void BindData() { DataTable dt = .......; if(dt != null) { DataView dv = dt.DefaultView; if(DataGrid1.Attributes["SortBy"] != null) { dv.Sort = DataGrid1.Attributes["SortBy"]; }
DataGrid1.DataSource = dv; DataGrid1.DataBind(); } }
private void DataGridSort(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e) { DataGrid1.Attributes["SortBy"] = sortstr; this.BindData();
//找到排序的列,并修改把它的排序属性
DataGridColumn clm = null;
for(int i=0;i if(clm == null) return; if(e.SortExpression.ToLower().IndexOf("desc") > 0) { clm.SortExpression = e.SortExpression.ToLower().Replace("desc","asc"); } else { if(e.SortExpression.ToLower().IndexOf("asc") > 0) { clm.SortExpression = e.SortExpression.ToLower().Replace("asc","desc"); } else { clm.SortExpression = e.SortExpression.ToLower() + " desc"; } } }