C#實現DataGrid排序功能詳解
作者:佚名
這里介紹在.Net 中C#實現DataGrid排序功能,但并不支持雙向的排序。用到了,看了些相關的帖子,自己嘗試了一種方法。
本文向大家介紹C#實現DataGrid排序功能,可能好多人還不了解DataGrid排序功能,沒有關系,看完本文你肯定有不少收獲,希望本文能教會你更多東西。
在.Net 中C#實現DataGrid排序功能,但并不支持雙向的排序。用到了,看了些相關的帖子,自己嘗試了一種方法。竟然也行得通,主要是用DataGrid.Attributes 存了一個參數,同時在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();
- //找到排序的列,并修改把它的排序屬性
- 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#實現DataGrid排序功能。
【編輯推薦】
責任編輯:佚名
來源:
博客園