Вторичная сортировка в DevExpress GridView - PullRequest
1 голос
/ 06 февраля 2012

Я использую DevExpress GridView в своем приложении (моя компания все еще использует старый DevExpress v7.2). У меня есть четыре столбца, один из которых является столбцом «Приоритет». Статус - это перечисление с тремя возможными значениями: Критическое, Высокое и Низкое.

Когда пользователь хочет отсортировать GridView по этому столбцу, я хочу отсортировать по уровню серьезности, но также и по элементам со степенью серьезности «Критическое» (например). Я хочу, чтобы значения сортировались по дате от самого раннего до самое последнее.

Если кто-то может помочь, это было бы здорово.

Спасибо! Джон.

Ответы [ 3 ]

2 голосов
/ 21 февраля 2013

Я не уверен, как вы осуществляете сортировку, но вы всегда можете перехватить поиск в столбце «Приоритет», а затем добавить вторичную сортировку в столбец даты.

Я уже делал подобные вещи раньше, у меня слишком много того, что вы хотите сделать, но основной код будет выглядеть примерно так:

    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 голосов
/ 15 февраля 2012

В более новых версиях элемента управления сеткой вы можете удерживать клавишу Ctrl и щелкнуть 2-й заголовок coulmn для сортировки по этому столбцу, а также по 1-му.Но я не уверен, будет ли он работать и в версии 7 сетки.

Обновление: фактически это клавиша Shift.см. здесь

0 голосов
/ 15 февраля 2012

Также у сетки есть метод SortBy (columnName)

...