web-dev-qa-db-ja.com

jqGrid:並べ替えを無効にする

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
});
21
Donald Taylor

cmTemplateをサポートするバージョンの場合、次を使用できます。

cmTemplate: { sortable: false }


cmTemplate:colModelのデフォルト値をオーバーライドするプロパティのセットを定義します。たとえば、すべての列を並べ替えできないようにする場合は、colModelのすべての列で指定するのではなく、ここで1つのプロパティのみを指定できます。

21
Pat Newell

JqGridのバージョンに応じて、各列にsortable: falseを具体的に+明示的に作成する必要があります。

参照については、 ここここ および ここ を参照してください。

21
Yahia