gpt4 book ai didi

javascript - jqgrid 自动排序分组列上的数据,如何关闭?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:01:57 33 4
gpt4 key购买 nike

我有一个带分组的 jqgrid,但是从服务器返回的数据已经分组,我只是想将 jqgrid 分组外观应用于数据。我已经包含了一个 jsfiddle,因为一张图片可以说 1000 个单词。数据包含在 fiddle 中......

fiddle 链接:http://jsfiddle.net/Rab815/p8Zsk/

$('table').jqGrid({
data: data,
datatype: "local",
rowNum:100,
gridview: true,
deepempty: true,
hoverrows: false,
headertitles: true,
height:'600px',
viewrecords:true,
hoverrows: true,
sortable: true,
altRows: true,
colModel: [
{ label: "Group Name", name:'groupName', field:"groupName", sortable:false},
{ label: 'Name', field: 'name', name:'name' },
{
label: 'Date Modified', field: 'lastGenerated', name:'lastGenerated'
}
],
grouping:true,
groupingView:
{
groupField: ['groupName'],
groupColumnShow: [true],
groupCollapse: true,
},
shrinkToFit: false
});

enter image description here

但是我需要它按这个顺序显示

enter image description here

现在,如果您将数据放入编辑器中,使每个 block 都显示在一行中,则数据已经按照我希望它出现的顺序从数据库中分组返回。但网格正在按“asc”顺序对 groupName 数据字段进行排序,据我所知,它无法关闭。

分组列最终将设置为 groupColumnShow: [false]

Olegs FIDDLE 的回答...

包含一个

groupOrder

在来自服务器的数据中而不是进行映射。

如下更改 GroupName 的 ColModel

{
label: "Group Name", field: "groupName",
sorttype: function (cellValue, obj) {
return obj.groupOrder;
//return groupOrder[obj.groupId];
}

现在一切都以正确的顺序出现。此解决方案允许排序(在 jqgrid 中默认为“asc”)按分组数据本身以外的不同值对分组数据进行排序。

谢谢!这让我难住了好一阵子!

最佳答案

问题存在是因为您对从服务器加载的数据使用了 datatype: "local"

要解决您的问题,您可以将 sorttype 属性定义为您排序所依据的列“groupName”中的函数。该函数应返回可用于而不是列值的值。例如,您可以使用新字段 groupOrder 扩展数据项并使用

sorttype: function (cellValue, obj) {
return groupOrder[obj.groupId];
}

该字段应在服务器上填写。

或者,您可以填充当前数据模型中的 groupId 与组订单索引之间的映射。例如代码

var groupOrder = {}, i, l = data.length, groupId, groupIndex = 1;

for (i = 0; i < l; i++) {
groupId = data[i].groupId;
if (groupOrder[groupId] === undefined) {
groupOrder[groupId] = groupIndex++;
}
}

以与组相同的顺序填充 groupOrder(您可以使用 data[i].groupName 而不是 data[i].groupId 同理)。有了这样的 groupOrder 就可以使用

sorttype: function (cellValue, obj) {
return groupOrder[obj.groupId];
}

演示 http://jsfiddle.net/p8Zsk/38/使用该方法,它会以正确的顺序显示组。

关于javascript - jqgrid 自动排序分组列上的数据,如何关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312197/

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