2

我有一个 JQGrid 将某些行组合在一起。我group用来定义应该将哪些行分组在一起,例如,如果有三个2s,它将所有2s 分组在一起。但是,可能只有一个2,在这种情况下,我不希望将它分组,即将行放在一个组下。

我的问题是,是否可以将分组仅应用于某些行而让其他行不理会?

以下是我目前拥有的:

colNames:['group', 'Description', 'File Sent to Customer', 'Date/Time', 'ATS', '# of Bib Records', '# of Items', 'Customer DB', 'Customer ID'],
    colModel:[
        {name:'group', index:'group'},
        {name:'description', index:'description'},
        {name:'fileSent', index:'fileSent', width:150},
        {name:'date', index:'date', width:160},
        {name:'ats', index:'ats', width:100},
        {name:'bibRecords', index:'bibRecords', width:100},
        {name:'items', index:'items', width:100},
        {name:'customerDB', index:'customerDB', width:240},
        {name:'customerID', index:'customerID', width:150}
    ],
    grouping:true,
    groupingView : {
        groupField : ['group'],
        groupColumnShow : [false],
        groupText : [''],
        groupCollapse : true,
        groupOrder: ['desc']
    },
4

1 回答 1

2

我觉得你的问题很有趣。所以我编写了显示而不是标准分组的解决方案(参见开始演示

在此处输入图像描述

以下:

在此处输入图像描述

对应的代码没有那么复杂:

loadComplete: function () {
    var i, groups = $(this).jqGrid("getGridParam", "groupingView").groups,
        l = groups.length,
        idSelectorPrefix = "#" + this.id + "ghead_0_";
    for (i = 0; i < l; i++) {
        if (groups[i].cnt === 1) {
            // hide the grouping row
            $(idSelectorPrefix + i).hide();
        }
    }
}

它使用一级分组,但可以以与多级分组相同的方式更改。

关于生成的网格的一个警告:您应该小心网格的排序。问题是 jqGrid 仅对组内的行进行排序。因此,上述带有隐藏分组标题的行似乎超出了排序过程。

于 2012-12-05T20:25:31.987 回答