博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中实现DataGrid双向排序(转)
阅读量:2509 次
发布时间:2019-05-11

本文共 1304 字,大约阅读时间需要 4 分钟。

C#中实现DataGrid双向排序(转)[@more@]在.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(DataGrid1.Columns
.SortExpression == e.SortExpression )
  {
   clm = DataGrid1.Columns;
   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";
  }
 }
}

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10617731/viewspace-957752/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10617731/viewspace-957752/

你可能感兴趣的文章
用户标签数据
查看>>
poj 3744 矩阵优化的概率DP
查看>>
javascript函数作用域和提前声明
查看>>
UIlabel以及其UIfont
查看>>
JQuery AJAX请求aspx后台方法
查看>>
Java中的集合框架-Map
查看>>
多校hdu5754(博弈)
查看>>
[py]数据描述符优先级
查看>>
NOI-1.1-08-字符三角形
查看>>
软工1816 · 作业(八)项目UML设计
查看>>
python激活码
查看>>
[HNOI2018]道路(DP)
查看>>
JDBC剖析篇(2):JDBC之PreparedStatement
查看>>
java并发:中断一个正在运行的线程
查看>>
【stl学习笔记】deques
查看>>
OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统
查看>>
zabbix
查看>>
多线程基础
查看>>
swift3.0更新内容
查看>>
Linux命令之locate
查看>>