jqGrid:禁用排序

jqGrid: Disable sorting

本文关键字:排序 jqGrid      更新时间:2023-09-26

我使用addRowData手动向jqGrid添加行,并且必须保持这些行的顺序。

然而,当分页时,所有的行都被重新排序,以按照网格的第一个可见列排序。

我已经关闭了所有我能找到文档的排序选项。

如何防止所有排序并保持所有页面上的行顺序?

正在使用的初始化代码:

$("#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
});

根据jqGrid的版本,您需要在每个列上明确地+显式地制作sortable: false

参考文献见这里、这里和这里

对于支持cmTemplate的版本,您可以使用:

cmTemplate: { sortable: false }


cmTemplate:定义了一组覆盖colModel默认值的属性。例如,如果您想使所有列不可排序,那么这里只能指定一个属性,而不是在colModel

中的所有列中指定它