C#中实现DataGrid双向排序


所属类别:编程

文章作者:爱雪儿工作室

特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!


在.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;ibr/>

 {

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";

}

 }

}推荐文章:搞笑之可爱水果表情

清新素洁水仙壁纸集

相关信息

· 进一步学习计算机的一些建议(对非计算机专业)

· 学会合理命名 可降低网站管理难度

· 消除系统错误 删除乱码文件名文件

· WEB专用服务器的安全设置技巧








....

81150 40448