C#中實現DataGrid雙向排序(轉)
C#中實現DataGrid雙向排序(轉)[@more@]在.net 中 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 {
if(DataGrid1.Columns.SortExpression == e.SortExpression )
{
clm = DataGrid1.Columns;
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";
}
}
}
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
if(DataGrid1.Columns.SortExpression == e.SortExpression )
{
clm = DataGrid1.Columns;
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";
}
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-957752/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 給datagrid控制元件建立穩固的雙向排序(asp.net) (轉)控制元件排序ASP.NET
- 在C#裡實現DATAGRID的列印預覽和列印 (轉)C#
- 實現listview控制元件report檢視下任何列頭的雙向排序 (轉)View控制元件排序
- GridView正反雙向排序View排序
- Vue雙向繫結實現Vue
- 實現雙向連結串列
- Vue 中實現雙向繫結的 4 種方法Vue
- MYSQL INNODB 中通用雙向連結串列的實現MySql
- 在winform中如何實現雙向資料繫結?ORM
- Go實現雙向連結串列Go
- vue實現prop雙向繫結Vue
- java實現雙向連結串列Java
- 將二叉排序樹BST轉換成排序的雙向連結串列排序
- [轉帖]DataGrid顯示雙層表頭,即可實現合併單元格問題
- 簡要實現vue雙向繫結Vue
- 雙向資料繫結實現原理
- angular雙向繫結簡單實現Angular
- 雙向繫結的極簡實現
- javascript實現雙向資料繫結JavaScript
- Java雙向連結串列的實現Java
- C#中DataGrid匯出Excel檔案C#Excel
- 用C#實現撲克牌排序C#排序
- 如何在原生微信小程式中實現資料雙向繫結微信小程式
- vue雙向繫結的原理及實現雙向繫結MVVM原始碼分析VueMVVM原始碼
- 簡單實現一個雙向繫結
- 剖析Vue原理&實現雙向繫結MVVMVueMVVM
- 梳理vue雙向繫結的實現原理Vue
- WPF之AvalonEdit實現MVVM雙向繫結MVVM
- C++實現通用雙向連結串列C++
- 雙向連結串列的功能實現(初版
- Vue雙向繫結原理,教你一步一步實現雙向繫結Vue
- DataGrid中巢狀使用Repeater (轉)巢狀
- 在C#中利用DirectX實現聲音播放(轉)C#
- NodeJS Https HSM雙向認證實現NodeJSHTTP
- 5分鐘教你實現Vue雙向繫結Vue
- mvvm-simple雙向繫結簡單實現MVVM
- js 實現vue的雙向資料繫結JSVue
- vue資料雙向繫結的實現原理Vue