В ответ Я показал, как изменить видимость сортировки иконок.Я изменил для вас предыдущее решение, чтобы отображать только значок активной сортировки.
Демонстрация демонстрирует результаты и показывает заголовки, подобные этому:
или это:
Код ниже показывает наиболее важную часть кода:
var $grid = $("#list");
$grid.jqGrid({
//... other jqGrid options
sortname: 'invdate',
sortorder: 'desc',
onSortCol: function (index, idxcol, sortorder) {
var $icons = $(this.grid.headers[idxcol].el).find(">div.ui-jqgrid-sortable>span.s-ico");
if (this.p.sortorder === 'asc') {
//$icons.find('>span.ui-icon-asc').show();
$icons.find('>span.ui-icon-asc')[0].style.display = "";
$icons.find('>span.ui-icon-desc').hide();
} else {
//$icons.find('>span.ui-icon-desc').show();
$icons.find('>span.ui-icon-desc')[0].style.display = "";
$icons.find('>span.ui-icon-asc').hide();
}
}
});
// hide initially the disaabled sorting icon
$('#jqgh_' + $.jgrid.jqID($grid[0].id) + '_' + $.jgrid.jqID(sortName) + '>span.s-ico').each(function () {
$(this).find('>span.ui-icon-' +
(sortDirection ? 'asc' : 'desc')).hide();
});
Я пытался использовать $icons.find('>span.ui-icon-asc').show();
в начале onSortCol
, но в Google Chrome возникают проблемы, поскольку show () устанавливает стиль display: block
для элемента <span>
.Поэтому я просто удалил стиль display: none
.