C#中实现DataGrid双向排序

2016-02-19 16:16 2 1 收藏

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享C#中实现DataGrid双向排序,希望可以对大家能有小小的帮助。

【 tulaoshi.com - 编程语言 】

  在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,主要是用DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下:

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  

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;iDataGrid1.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";  } }} 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1611509.html

延伸阅读
前段时间因为项目需要,做了个用来对数组排序的类,顺便把以前学过的几种排序算法用C#实现一下。用C#的一些机制来诠释了一下算法的是实现。在阅读本之前,需要一些对C#的有些基本的了解,了解方法参数中out ,ref的作用,掌握面向对象的一些基本思想。 1. 插入排序 1.1. 基本思想: 每次将一个待排序的数据元素,插入到前面...
在word应用程序中搜索和替换文本是举手之劳的事情,通过word的对象模型,我们也可以使用编程方式来实现。 Word的对象模型有比较详细的帮助文档,放在office安装程序目录,office 2003是在Program Files\Microsoft Office\OFFICE11\2052下,文档本身是为VBA提供的,在这个目录下还可以看到所有的office应用程序的VBA帮助。 打开VBA...
有了在Word文档中编程实现搜索文本的经验,在Excel中实现这个功能也并非难事。 打开Excel的VBA帮助,查看Excel的对象模型,很容易找到完成这个功能需要的几个集合和对象:Application、Workbooks、Workbook、Worksheets还有Worksheet和Range。Application创建Excel应用,Workbooks打开Excel文档,Workbook获得Excel文档工作薄,Worksh...
#undef debug #define debugdisplay #undef debugdictionary using System; using System.Collections; namespace LZW {  public class cLZW  {   #region Constrcut   public cLZW()   {   }   #endregion      #region Coding   public string ...
其基本模式如下: 分解:把一个问题分解成与原问题相似的子问题 解决:递归的解各个子问题 合并:合并子问题的结果得到了原问题的解。 现在就用递归算法,采用上面的分治思想来解合并排序。                       合并排序(...

经验教程

506

收藏

80
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部