C#實(shí)現(xiàn)DataGrid排序功能詳解
本文向大家介紹C#實(shí)現(xiàn)DataGrid排序功能,可能好多人還不了解DataGrid排序功能,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。
在.Net 中C#實(shí)現(xiàn)DataGrid排序功能,但并不支持雙向的排序。用到了,看了些相關(guān)的帖子,自己嘗試了一種方法。竟然也行得通,主要是用DataGrid.Attributes 存了一個(gè)參數(shù),同時(shí)在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();
 - //找到排序的列,并修改把它的排序?qū)傩?
 - DataGridColumn clm = null;
 - for(int i=0;i<DataGrid1.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";
 - }
 - }
 - }
 
以上介紹C#實(shí)現(xiàn)DataGrid排序功能。
【編輯推薦】















 
 
 

 
 
 
 