gpt4 book ai didi

jquery - jqGrid 分组 - 停用页面导航上的客户端排序

转载 作者:行者123 更新时间:2023-12-01 03:19:59 24 4
gpt4 key购买 nike

我使用带有 loadOnce:true 的网格,以便只有一个对服务器的查询。数据在服务器端排序(多列排序)。客户端禁用排序。

在激活分组功能之前,导航工作正常。

通过激活分组功能,第一页就可以了。但是,当我使用导航按钮转到下一页时,数据会根据分组列在客户端进行排序(即使使用 groupDataSorted:true)。

rowTotal: 10000,
gridview: true,
scroll: false,
loadonce: true,

pgbuttons: true,
pginput: true,
rowNum: 100,
rowList: '',
datatype: 'json',
mtype: 'GET',

grouping: true,
groupingView : {
groupField : ['prodNo'],
groupSummary: [true],
groupColumnShow: [false],
groupText: ['({1})'],
showSummaryOnHide: true,
groupDataSorted : true,
groupCollapse: false
},
jsonReader: {root: 'list', userdata : 'list'},
url:'...'

我的情况有点特殊,因为我根据“名称”和“日期”列对服务器端的数据进行排序,但根据另一个“prodNo”列对行进行分组。但是我不明白为什么排序是在页面导航上完成的。

有没有办法在页面导航上禁用此客户端排序?

提前致谢

最佳答案

如果您使用 loadonce: true 并且用户单击“下一页”按钮,则本地数据将由 grindexes 重新排序(它是用于在 groupField 中进行分组的列的 index 属性的值。因此,解决您的问题的最简单方法是在 prodNo 列中实现自定义排序。

您可以先尝试在“prodNo”列的定义中添加自定义排序

sorttype: function () {
return 1; // any constant value
}

本地数据排序时会调用函数sorttype。如果它返回与上面的示例相同的结果,那么所有数据将被解释为相同的,我希望不会发生额外的排序。

如果由于某种原因该方法不起作用,您可以实现另一种排序

sorttype: function (cellValus, rowData) {
...
}

例如,如果您希望本地数据根据其他列“名称”和“日期”进行排序,您可以从“prodNo”列中的 sorttype 返回类似的值

sorttype: function (cellValus, rowData) {
// probably the data need be converted in the sortable form yyyy-mm-dd
return rowData.name + '_' + rowData.data;
}

关于jquery - jqGrid 分组 - 停用页面导航上的客户端排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10977583/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com