【问题标题】:Secondary sorting in DevExpress GridViewDevExpress GridView 中的二次排序
【发布时间】:2012-02-06 15:01:18
【问题描述】:

我在我的应用程序中使用了 DevExpress GridView(我的公司仍然使用旧的 DevExpress v7.2)。我有四列,其中之一是“优先级”列。 Status 是一个具有三个可能值的枚举:Critical、High 和 Low。

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

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

谢谢! 约翰。

【问题讨论】:

  • 日期值也是列之一吗?

标签: c# sorting gridview devexpress


【解决方案1】:

我不确定您是如何实现排序的,但您总是可以拦截在“优先级”列上查找排序,然后在日期列上附加次要排序。

我以前做过这种类型的事情,我的对于你想要做的事情来说太过分了,但基本代码是这样的:

    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】:

    在较新版本的网格控件中,您可以按住 ctrl 键并单击第 2 列标题以按该列和第 1 列排序。但我不确定它是否也适用于网格的第 7 版。

    更新:它实际上是 shift 键。请看here

    【讨论】:

      【解决方案3】:

      网格也有 SortBy(columnName) 方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-19
        • 1970-01-01
        • 2016-08-31
        • 2019-08-06
        • 1970-01-01
        相关资源
        最近更新 更多