Подтвердить что ты не робот

JqGrid: отключить сортировку

Я добавляю строки вручную в jqGrid с помощью addRowData, и порядок этих строк должен поддерживаться.

Однако при подкачке все строки переупорядочиваются для сортировки по столбцу первой видимости сетки.

Я отключил все параметры сортировки, которые я могу найти документально.

Как я могу предотвратить всю сортировку и поддерживать порядок строк на всех страницах?

код

Используется код инициализации:

$("#grid").jqGrid({
  autowidth: false,
  cmTemplate: {sortable: false},
  colModel: config.gridColumnModel
  height: 600,
  pager: "#aggregationToolbar",
  sortable: false,
  shrinkToFit: false
  url: "fetch",
  viewrecords: false
});

Используемые значения по умолчанию (переопределены параметрами в коде инициализации выше):

$.extend($.jgrid.defaults, {
  altClass: "altRow",
  altRows: true,
  autowidth: true,
  cmTemplate: {
    align: "center",
    title: false
  },
  datatype: "local",
  gridview: true,
  height: "auto",
  hidegrid: false,
  jsonReader: {
    page: function(obj) { return 1; },
    records: function(obj) { return obj.length; },
    repeatitems: false,
    root: "objects",
    total: function(obj) { return 1; }
  },
  loadonce: true,
  rowList: [50, 100, 250],
  rowNum: 100,
  sortable: true,
  toppager: true,
  viewrecords: true
});
4b9b3361

Ответ 1

Для версий, поддерживающих cmTemplate, вы можете использовать:

cmTemplate: { sortable: false }


cmTemplate. Определяет набор свойств, которые переопределяют значения по умолчанию в colModel. Например, если вы хотите, чтобы все столбцы не были сортируемыми, тогда можно указать только одно свойство, а не указывать его во всех столбцах в colModel

Ответ 2

В зависимости от версии jqGrid вам нужно сделать sortable: false для каждого столбца специально + явно...

Для справки см. здесь, здесь и здесь.