2012-01-18 2 views
1

Ответа вкак undeline заголовок столбца в отсортированном jqgrid

how to make sort icons visible in all column headers in jqgrid regardless on sort status

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

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

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

ответ

2

Я изменил демо от предыдущего ответа на the following который дисплей

enter image description here

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

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

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

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'); 
    } 
}); 

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

+0

спасибо. Отлично. Изображение в ответ показывает столбец даты в желтом bakcground, но демонстрационная ссылка, открытая в IE9, не меняет цвет фона столбца даты. Являются ли демо-код и код ответа и код, используемый для изображения в ответе другим? – Andrus

+1

@ Andrus: Добро пожаловать! Ссылка на второе демо, использующее '' ui-state-highlight'' вместо '' sortedColumnHeader'', является [здесь] (http://www.ok-soft-gmbh.com/jqGrid/ShowAlwaysSortableIcons2.htm) – Oleg

+0

Спасибо. Новая демо также содержит '$ (elem) .addClass ('ui-state-error')'. в колонке «Налог». В чем цель этого, я не вижу различий в колонке налогов? – Andrus

Смежные вопросы