我在我的应用程序中使用DevExpress GridView(我的公司仍然使用旧的DevExpress v7.2)。我有四列,其中一列是“优先级”列。状态是一个包含三个可能值的枚举:严重,高和低。
当用户想要按此列对GridView进行排序时,我希望按严重性级别进行排序,但也要在严重性为“严重”的项目中进行排序(例如)我希望按最早的日期对值进行排序最新的。
如果有人能提供帮助那就太棒了。
谢谢! 约翰。
答案 0 :(得分:2)
在较新版本的网格控件中,您可以按住ctrl键并单击2'nd coulmn标题,按照该列以及第1列进行排序。但我不确定它是否也适用于网格版本7。
更新:它实际上是shift键。请参阅here
答案 1 :(得分:2)
我不确定如何实施排序,但您可以随时拦截在“优先级”列上查找排序,然后在日期列上附加辅助排序。
我以前做过这类事情,但是对于你想做的事情来说我的做法有些过分,但基本代码会是这样的:
public void GridView_ExampleSorting(object sender, GridViewSortEventArgs e)
{
GridView gv = (GridView)sender;
DataTable dataTable = gv.DataSource as DataTable;
if (dataTable != null)
{
string sortdirection = GetNextSortDirection(e.SortExpression);
DataView dataView = new DataView(dataTable);
dataView.Sort = e.SortExpression + " " + sortdirection;
if (e.SortExpression.ToString() == "priority")
dataView.Sort += " date DESC";
gv.DataSource = dataView;
gv.PageIndex = 0;
gv.DataBind();
}
}
答案 2 :(得分:0)
网格也有SortBy(columnName)方法