C#实现DataGrid排序功能详解

开发 后端
这里介绍在.Net 中C#实现DataGrid排序功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法。

本文向大家介绍C#实现DataGrid排序功能,可能好多人还不了解DataGrid排序功能,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

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

  1. private void BindData()  
  2. {  
  3. DataTable dt = .......;  
  4. if(dt != null)  
  5. {  
  6. DataView dv = dt.DefaultView;  
  7. if(DataGrid1.Attributes["SortBy"] != null)  
  8. {  
  9. dv.Sort = DataGrid1.Attributes["SortBy"];  
  10. }  
  11.  
  12. DataGrid1.DataSource = dv;  
  13. DataGrid1.DataBind();  
  14. }  
  15. }  
  16.  
  17. private void DataGridSort(object source, System.Web.UI.
    WebControls.DataGridSortCommandEventArgs e)  
  18. {  
  19. DataGrid1.Attributes["SortBy"] = sortstr;  
  20. this.BindData();  
  21.  
  22. //找到排序的列,并修改把它的排序属性  
  23.  
  24. DataGridColumn clm = null;  
  25.  
  26. for(int i=0;i<DataGrid1.Columns.Count;i++)  
  27. {  
  28. if(DataGrid1.Columns[i].SortExpression == e.SortExpression )  
  29. {  
  30. clm = DataGrid1.Columns[i];  
  31. break;  
  32. }  
  33. }  
  34.  
  35. if(clm == null) return;  
  36.  
  37. if(e.SortExpression.ToLower().IndexOf("desc") > 0)  
  38. {  
  39. clm.SortExpression = e.SortExpression.ToLower().Replace("desc","asc");  
  40. }  
  41. else  
  42. {  
  43. if(e.SortExpression.ToLower().IndexOf("asc") > 0)  
  44. {  
  45. clm.SortExpression = e.SortExpression.ToLower().Replace("asc","desc");  
  46. }  
  47. else  
  48. {  
  49. clm.SortExpression = e.SortExpression.ToLower() + " desc";  
  50. }  
  51. }  

以上介绍C#实现DataGrid排序功能。

【编辑推荐】

  1. C#创建表单简单介绍
  2. C#修改DataReader默认行为
  3. C#设置CooperativeLevel概述
  4. C#表单增加控件简单描述
  5. C# EmployeePlug类概述
责任编辑:佚名 来源: 博客园
相关推荐

2020-05-14 14:57:48

MySQLExcel排序

2022-09-20 08:49:26

Java8Lambda

2009-09-10 16:30:11

C#排序函数

2009-08-26 09:22:44

C#实现打印功能

2009-08-11 14:45:41

C# DataGrid

2009-08-25 17:41:51

C#开发排序算法

2009-08-14 14:38:08

C# DataGrid

2009-08-21 15:27:11

C# DataGrid

2010-05-06 14:31:32

Oracle数据库

2009-09-02 17:29:10

C# TextBox换

2009-08-31 16:23:13

C#接口

2009-08-25 18:04:30

C#实现Singlet

2009-09-09 18:50:23

C# 加密RSA

2010-04-30 10:01:09

Oracle 分页

2009-08-26 10:43:14

C#实现打印功能

2009-09-09 18:57:26

C# 加密TripleDES

2009-08-25 10:44:50

C#实现多语言

2009-08-25 17:43:17

C#串口监听

2009-08-26 12:59:08

C#打印设置

2009-08-21 10:13:02

C#异步初步
点赞
收藏

51CTO技术栈公众号