DevExpress GridView中的二级排序

时间:2012-02-06 15:01:18

标签: c# sorting gridview devexpress

我在我的应用程序中使用DevExpress GridView(我的公司仍然使用旧的DevExpress v7.2)。我有四列,其中一列是“优先级”列。状态是一个包含三个可能值的枚举:严重,高和低。

当用户想要按此列对GridView进行排序时,我希望按严重性级别进行排序,但也要在严重性为“严重”的项目中进行排序(例如)我希望按最早的日期对值进行排序最新的。

如果有人能提供帮助那就太棒了。

谢谢! 约翰。

3 个答案:

答案 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)方法