在.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<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双向排序
最新推荐文章于 2024-09-21 16:28:27 发布
本文介绍了在.NET中DataGrid控件不支持双向排序的问题,提供了一种解决方案,通过DataGrid.Attributes存储排序参数并在onSortCommand事件中修改DataGridColumn的SortExpression,实现了双向排序的功能。
摘要由CSDN通过智能技术生成
--> 在.Net 中 DataGrid 虽然有排序的功能,但并不支持双向的排...
--> 第三章: 类属性 使用过RAD开发工具的一定inspecto...
--> 在微软的.NET推出后,关于C#的有关文章也相继出现,作为微...
--> C# 用户经常提出两个问题:“我为什么要另外编写代码来使用...