Как отменить отмену заголовка отсортированного столбца в jqgrid - PullRequest
1 голос
/ 18 января 2012

Ответ в

как сделать значки сортировки видимыми во всех заголовках столбцов в jqgrid независимо от статуса сортировки

описывает, как добавить сортируемую индикацию в столбцы.

Трудно различить отсортированный и несортированный столбец по индикатору сортировки по умолчанию.

Как подчеркнуть текст заголовка отсортированного столбца в дополнении к индикатору сортировки?

1 Ответ

2 голосов
/ 18 января 2012

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

enter image description here

Я использовал для демонстрации класс CSS, где я дополнительно к подчеркиванию изменил цвет текста

.sortedColumnHeader > div { text-decoration: underline; color: blue; }

Если мы будем играть вперед, мы можем использовать только 'ui-state-highlight' для выделения (см. еще одну демонстрацию ). Заголовок столбца, вероятно, будет даже слишком сильно отличаться от стандартного столбца:

enter image description here

Соответствующий код

var $grid = $("#list"), colModel, sortName;

// create the grid
$grid.jqGrid({
    // all typical jqGrid parameters
    onSortCol: function (index, idxcol, sortorder) {
        if (this.p.lastsort >= 0 && this.p.lastsort !== idxcol
                && this.p.colModel[this.p.lastsort].sortable !== false) {
            // show the icons of last sorted column
            $(this.grid.headers[this.p.lastsort].el)
                .find(">div.ui-jqgrid-sortable>span.s-ico").show();
            $(this.grid.headers[this.p.lastsort].el).removeClass('sortedColumnHeader');
        }
        $(this.grid.headers[idxcol].el).addClass('sortedColumnHeader');
    }
});

// show sort icons of all sortable columns
colModel = $grid.jqGrid('getGridParam', 'colModel');
sortName = $grid.jqGrid('getGridParam', 'sortname');
$('#gbox_' + $.jgrid.jqID($grid[0].id) +
    ' tr.ui-jqgrid-labels th.ui-th-column').each(function (i) {
    var cmi = colModel[i], colName = cmi.name;

    if (cmi.sortable !== false) {
        // show the sorting icons
        $(this).find('>div.ui-jqgrid-sortable>span.s-ico').show();
    } else if (!cmi.sortable && colName !== 'rn' && colName !== 'cb' && colName !== 'subgrid') {
        // change the mouse cursor on the columns which are non-sortable
        $(this).find('>div.ui-jqgrid-sortable').css({cursor: 'default'});
    }
    if (cmi.name === sortName) {
        $(this).addClass('sortedColumnHeader');
    }
});

В конце я хочу сослаться на еще один старый ответ , где показан другой изощренный метод выделения отсортированного столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...