C#实现DataGrid排序功能详解

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

成都创新互联是一家专注于网站设计、成都网站建设与策划设计,福海网站建设哪家好?成都创新互联做网站,专注于网站建设10多年,网设计领域的专业建站公司;建站业务涵盖:福海等地区。福海做网站价格咨询:18982081108

在.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;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排序功能。

网站名称:C#实现DataGrid排序功能详解
文章位置:http://www.36103.cn/qtweb/news25/12725.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联