2011-11-14 341 views
19

我正在使用addRowData手動向jqGrid添加行,並且必須保留這些行的順序。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 
}); 
+0

哪個值具有jqGrid參數'sortname'?爲什麼你需要使用'addRowData'?你使用哪種'datetype'?如果你包含你使用的代碼會更好。 – Oleg

+0

「sortname」根本沒有被使用。由於需要一些必要的後期處理,因此使用「addRowData」。 「數據類型」是本地的。 –

+0

在你發佈'datatype'的代碼示例沒有定義,所以'datatype:'xml''將被使用。你使用任何默認設置?哪一個?如果使用''local''數據類型,則可以使用jqGrid的'data'參數,它可以更快速地工作,並支持所有本地功能,如分頁,排序和過濾。你能否包含可用於重現問題的測試數據的小樣本? – Oleg

回答

18

對於支持cmTemplate版本,你可以使用:

cmTemplate: { sortable: false }


cmTemplate:定義一組覆蓋colModel默認值的屬性。例如,如果要使所有列不可排序,那麼只能指定一個propery,而不是在colModel的所有列中指定它。

17

根據的jqGrid版本,您需要明確地+在每一列上製作sortable: false ...

有關參考請參閱here,herehere