Для реализации ваших требований вы должны использовать groupCollapse: true
, чтобы все группы отображались в свернутом виде. Например, как
grouping: true,
groupingView: {
groupField: ['invdate'],
groupCollapse: true,
groupDataSorted: true
}
, а затем разверните первую группу относительно groupingToggle после заполнения сетки. Например, вы можете использовать следующий код внутри loadComplete
:
loadComplete: function () {
var $this = $(this), firstGroup = $this.find('tr.jqgroup:first');
if (firstGroup.length > 0) {
$this.jqGrid('groupingToggle', firstGroup[0].id);
}
}
Если вы напомните тот факт, как будут создаваться идентификаторы группирующих строк сетки, вы можете уменьшить код до следующего
loadComplete: function () {
$(this).jqGrid('groupingToggle', this.id + 'ghead_0');
}
См. демо .
Чтобы на лету изменить столбец, используемый для группировки, вы можете использовать groupingGroupBy
метод:
$("#list").jqGrid('groupingGroupBy', columnName);
Например $("#list").jqGrid('groupingGroupBy', 'ship_via');
. Вы должны понимать, что новый groupField
будет использоваться только после следующего заполнения тела сетки. Поэтому, если вы хотите определить на сервере порядок группировки и включить его в ответ сервера, вам следует вызвать метод groupingGroupBy
внутри beforeProcessing
, а не внутри loadComplete
.