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

ASP.NET
c# Random快速连续产生相同随机数的解决方案
form身份验证通过后,只能用FormsAuthentication.RedirectFromLoginPage
ASP.NET Global.asax应用程序文件简介
Asp.net下载功能的解决方案代码
asp.net 生成数字和字母组合的随机数
asp.net显示页面执行时间
DiscuzNT 论坛与主站的同步登录与退出
c# 读取Northwind数据库image字段
asp.net 数据访问层基类
C# 文件保存到数据库中或者从数据库中读取文件
ASP.NET 防止用户跳过登陆界面
asp.net 字符串加密解密技术
asp.net 票据简单应用
基于C# 网站地图制作
asp.net GridView 中增加记录的方法
asp.net 自动将汉字转换成拼音第一个字母
运行asp.net时出现 http错误404-文件或目录未找到
System.Runtime.InteropServices.COMException的解决方法
VS2005 180天限制破解方法
asp.net 面试+笔试题目

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 205 ::
收藏到网摘: 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"; } } }