熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#中實現DataGrid雙向排序

2013-11-13 10:10:13  來源: .NET編程 

  在Net 中 DataGrid 雖然有排序的功能但並不支持雙向的排序用到了看了些相關的帖子自己嘗試了一種方法竟然也行得通主要是用DataGridAttributes 存了一個參數同時在onSortCommand中修改了DataGridColumn的SortExpression 代碼如下
  
  private void BindData()
  {
  DataTable dt = ;
  if(dt != null)
  {
  DataView dv = dtDefaultView;
  if(DataGridAttributes[SortBy] != null)
  {
  dvSort = DataGridAttributes[SortBy];
  }
  
  DataGridDataSource = dv;
  DataGridDataBind();
  }
  }
  
  private void DataGridSort(object source SystemWebUIWebControlsDataGridSortCommandEventArgs e)
  {
  DataGridAttributes[SortBy] = sortstr;
  thisBindData();
  
  //找到排序的列並修改把它的排序屬性
  
  DataGridColumn clm = null;
  
  for(int i=;i<DataGridColumnsCount;i++)
  {
  if(DataGridColumns[i]SortExpression == eSortExpression )
  {
  clm = DataGridColumns[i];
  break;
  }
  }
  
  if(clm == null) return;
  
  if(eSortExpressionToLower()IndexOf(desc) > )
  {
  clmSortExpression = eSortExpressionToLower()Replace(descasc);
  }
  else
  {
  if(eSortExpressionToLower()IndexOf(asc) > )
  {
  clmSortExpression = eSortExpressionToLower()Replace(ascdesc);
  }
  else
  {
  clmSortExpression = eSortExpressionToLower() + desc;
  }
  }
  }
From:http://tw.wingwit.com/Article/program/net/201311/12770.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.