首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jqPivot对不属于组的列标题进行分组。

jqPivot对不属于组的列标题进行分组。
EN

Stack Overflow用户
提问于 2015-05-11 12:06:15
回答 1查看 712关注 0票数 2

我试图利用jqgrid的jq透视的列标题组功能来拥有两个列标题(一周中的一个标题,实际日期的另一个标题)。

代码语言:javascript
复制
    var crewAttendance = { "total": 1, "page": 0, "records": 7,
            "rows": [
                { "ID": "1", "UserID": "10", "AttendanceTypeID": "6", "AttendanceDate": "04/05/15", "AttendanceDay": "SUN" },
                { "ID": "21", "UserID": "10", "AttendanceTypeID": "12", "AttendanceDate": "04/06/15", "AttendanceDay": "MON" },
                { "ID": "41", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/07/15", "AttendanceDay": "TUE" },
                { "ID": "61", "UserID": "10", "AttendanceTypeID": "17", "AttendanceDate": "04/08/15", "AttendanceDay": "WED" },
                { "ID": "81", "UserID": "10", "AttendanceTypeID": "17", "AttendanceDate": "04/09/15", "AttendanceDay": "THU" },
                { "ID": "101", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/10/15", "AttendanceDay": "FRI" },
                { "ID": "121", "UserID": "10", "AttendanceTypeID": "19", "AttendanceDate": "04/11/15", "AttendanceDay": "SAT" }
            ], "userID": ["10"], "firstName": ["Christopher"]
        }
        // create jqPivot Grid
    var grid = $("#pvtCrewAttendance");
    grid.jqGrid("jqPivot",
        crewAttendance.rows,
        {
            xDimension: [
                {
                    isGroupField: false,
                    width: 70,
                    dataName: 'UserID',
                    label: 'UserID'
                }
            ],
            yDimension: [
                {
                    dataName: 'AttendanceDay'
                },
                {
                    dataName: 'AttendanceDate'
                }
            ],
            aggregates: [
                {
                    aggregator: 'max',
                    width: 80,
                    member: 'AttendanceTypeID',
                    summarytype: 'count',
                    sortable: true,
                    resizable: false
                }
            ],
            groupSummary: false,
            colTotals: true
        },
    // grid options
        {
        height: 'auto',
        pager: '#nav',
        caption: 'Crew Attendance'
    });

    var cm = grid.getGridParam('colModel');
    for (var iCol = 0; iCol < cm.length; iCol++) {
        var cmi = cm[iCol];
        if (cmi.label.length == 3 || cmi.label.length == 0 || cmi.label == '\&nbsp\;') {
            grid.jqGrid('hideCol', cmi.name);
        }
    }
    grid.trigger('reloadGrid');

到目前为止,它是为SUN和MON工作的,但出于某种原因,jqPivot的列标题分组在剩下的日子里不能正常工作(TUE和WED组合,然后是清华、FRI和SAT合并,但它们不应该结合,因为它们在不同的日期)。见jsFiddle 这里

我怎样才能让它在剩下的日子里发挥作用?

注意:我不能将两个标题组合在一起,因为我将把日期旋转90度。我已经做过这部分了,但为了减少杂乱,我把它移到小提琴里去了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-13 21:41:52

谢谢你的错误报告!

经过长时间的调试,我发现并修复了这个错误。您的演示直接使用了来自GitHub的最新源代码。因此,最后的变化也被应用到演示中。您可以验证它现在是否显示了正确的结果。

更新了:我实现了更多的修补程序在承诺中这一个 for jsPivot模块。应该修复来自jqGrid 4.7的旧bug。现在,您的JSFiddle演示https://jsfiddle.net/OlegKi/4en1b68c/7/产生了正确的结果(我在演示中做了一些修饰)。我希望代码对于更复杂的输入数据也是正确的。此外,还可以通过隐藏具有cmi.label.length == 3 || cmi.label.length == 0 || cmi.label == '\&nbsp\;'的列来删除最后一个块。我将列的存在解释为又一个bug,因此我修改了代码,使这些列在网格中不存在更多。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30167229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档