Мне нужно показать значки столбцов сортировки в Jqgrid. Я нашел ответы здесь сам. Я попытался с этим, теперь я могу видеть значки сортировки на всех сортируемых заголовках столбцов, но столбец сортировки по умолчанию не показывает выделенный значок.Нужно показать значок столбца сортировки по умолчанию в jqgrid
Это мой сценарий:
var $tempX= $(divId), colModel, sortName;
jQuery(divId).jqGrid({
datatype: "local",
height: 250,
width:1000,
colNames:eval(colNamesVal),
colModel:eval(colModelVal),
rowNum:35,
rowList:[35,60,100,1000000000],
rownumbers: true,
rownumWidth:50,
height:"auto",
pager: '#pager2',
ignoreCase: true,
//altRows:true,
pagination:true,
headertitles:true,
sortable:true,
sortorder: "asc",
viewrecords: true,
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');
},
loadComplete: function(){
$("option[value=1000000000]").text('All');
}
});
colModel = $tempX.jqGrid('getGridParam', 'colModel');
sortName = $tempX.jqGrid('getGridParam', 'sortname');
$('#gbox_' + $.jgrid.jqID($tempX[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');
}
});
Может
кто-нибудь помочь в этом? Спасибо!
Просто мне нужно показать значок для отсортированного по умолчанию столбца. Я попробовал ваш скрипт. Но все равно. Все столбцы имеют значки, но для отсортированных значков столбцов бит яркий цвет, либо стрелка вниз, либо стрелка вверх в зависимости от порядка сортировки !. – user1199537
@ user1199537: Нет отсортированного по умолчанию столбца, потому что вы не определяете опцию 'sortname'. Если вы будете использовать параметр 'data' для создания непустой сетки, данные будут ** не отсортированы **. Чтобы отсортировать данные, которые вы должны использовать, укажите столбец, по которому сортировка должна быть выполнена, включая опцию 'sortname'. Просто внимательно просмотрите код [demo] (http://www.ok-soft-gmbh.com/jqGrid/ShowAlwaysSortableIcons1.htm). – Oleg
Для каждой сетки я передаю имя сортировки ... так: loadGrid (colNames, colModels, jsonObj.result, divId, 'name'); – user1199537