jqGrid: Disable sorting

Donald Taylor picture Donald Taylor · Nov 14, 2011 · Viewed 23.9k times · Source

I am adding rows manually to jqGrid using addRowData, and the order of these rows must be maintained.

However, when paging, all rows are reordered to sort by the grid's first visible column.

I have turned off all sorting options that I can find documented.

How can I prevent all sorting and maintain the order of rows across all pages?

Code

Initialization code being used:

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

Default settings being used (overridden by the options in the initialization code above):

$.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
});

Answer

Yahia picture Yahia · Nov 19, 2011

Depending on the jqGrid version you need to make sortable: false on each column specifically + explicitly...

For references see here, here and here.