在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享C#中实现DataGrid双向排序,希望可以对大家能有小小的帮助。
【 tulaoshi.com - 编程语言 】
在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排序。用到了,看了些相关的帖子,自己尝试了一种方法,竟然也行得通,主要是用DataGrid.Attributes 存了一个参数,同时在onSortCommand中修改了DataGridColumn的SortExpression. 代码如下:
(本文来源于图老师网站,更多请访问http://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"; } }}(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)
来源:http://www.tulaoshi.com/n/20160219/1611509.html
看过《C#中实现DataGrid双向排序》的人还看了以下文章 更多>>