2011-11-14 96 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