C#中实现DataGrid双向排序
在.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<DataGrid1.Columns.Count;i++)
{
if(DataGrid1.Columns[i].SortExpression == e.SortExpression )
{
clm = DataGrid1.Columns[i];
break;
}
}
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";
}
}
}
- · 用C#开发网络防火墙技术分析
- · C#打造自己的文件浏览器
- · 百万程序员的苦恼-选择VB.NET还是C#
- · 利用C#进行AutoCAD的二次开发(一)
- · 给大家一个新的加密方法,C#的
- · C#代表元及事件触发
- · 用Visual C#来清空回收站(2)
- · 用Visual C#来清空回收站(1)
- · 用Visual C#中实现DB2数据库编程
- · Visual C#的SQL Server编程
- · 使用C#开发用户控制
- · 用C#代码生成一个简单的PDF文件
- · 利用c#制作简单的留言板(4)
- · 利用c#制作简单的留言板(3)
- · 利用c#制作简单的留言板(2)
- · C#操作技巧的数据类型之间的转换
- · C#中的函数重载
- · 用浏览器来接收C# 的程序返回的时间
- · 用c#写的asp+域名查询程序
- · C#中方法参数的四种类型
- · switch语句的“不准遍历”
- · C#中的checked、unchecked操作符
- · C#中的“装箱”(boxing)与“拆箱”(unboxing)
- · C#中的数组和C++中数组的区别
- · C#中的代理(delegate)
- · 数据结构与算法(C#实现)系列---广义树(二)
- · 数据结构与算法(C#实现)系列---广义树(一)
- · 数据结构与算法(C#实现)系列-----前言
- · C#就是Java只不过差了一点点
- · 基于C#的接口基础教程之七
- · C#中构造函数和析构函数的用法
- · C#,深入浅出全接触(五)
- · C#,深入浅出全接触(四)
- · C#,深入浅出全接触(三)
- · C#学习笔记(4)
- · C#学习笔记(3)
- · C#学习笔记(2)
- · C#,深入浅出全接触(二)
