【问题标题】:jqGrid drag and drop headings for grouping .... Group NamejqGrid拖放标题进行分组....组名
【发布时间】:2014-07-28 10:12:30
【问题描述】:

我已设置拖放标题以按来自jQgrid Grouping Drag and Drop 的相关列进行分组

效果很好,但是我试图在值之前显示列名,即

Client : Test data data
Client : Test2 data data

如果有人可以提供帮助,我一直在兜圈子。
如果我采用与动态组相同的代码,则应该是(列名)
我最终得到的是列数据而不是列名。

$('#' + gridId).jqGrid('groupingGroupBy', getheader());

function getheader() {
    var header = $('#groups ol li:not(.placeholder)').map(function () {
                      return $(this).attr('data-column');
                 }).get();
    return header;
}

如果我在组文本中使用相同的函数,我会得到数据而不是列名。

我来自 C#,对 jQuery 很陌生。

如果有人能提供帮助,将不胜感激。

亲切的问候,
瑞恩

【问题讨论】:

    标签: jqgrid grouping


    【解决方案1】:

    首先the updated demo 提供了您的问题的解决方案:

    Another demo 包含简化的演示,演示了如何在分组标题中以 Column Header: Column data 的形式显示分组标题,而不是默认使用的 Column data

    解决方案的主要思想是使用groupingViewformatDisplayField 属性,我最初在the answer 中建议。当前版本的 jqGrid 支持该选项。如果有人会使用例如选项

    grouping: true,
    groupingView: {
        groupField: ["name", "invdate"],
        groupColumnShow: [false, false],
        formatDisplayField: [
            customFormatDisplayField,
            customFormatDisplayField
        ]
    }
    

    其中customFormatDisplayField回调函数定义为

    var customFormatDisplayField = function (displayValue, value, colModel) {
        return colModel.name + ": " + displayValue;
    }
    

    将显示几乎您需要的结果,但它将使用colModelname 属性而不是colNames 中的相应名称。为了使最终解决方案使用customFormatDisplayField 的另一种实现:

    var getColumnHeaderByName = function (colName) {
            var $self = $(this),
                colNames = $self.jqGrid("getGridParam", "colNames"),
                colModel = $self.jqGrid("getGridParam", "colModel"),
                cColumns = colModel.length,
                iCol;
            for (iCol = 0; iCol < cColumns; iCol++) {
                if (colModel[iCol].name === colName) {
                    return colNames[iCol];
                }
            }
        },
        customFormatDisplayField = function (displayValue, value, colModel, index, grp) {
            return getColumnHeaderByName.call(this, colModel.name) + ": " + displayValue;
        };
    

    【讨论】:

    • 另外删除标题似乎不起作用,如果您删除所有组,它也会使占位符消失。有什么想法吗?
    • @rize17:这是演示其他部分的一个小错误。 The demo 解决了这个问题。
    • 我还有最后一个问题。我有一个 DateTime 作为分组列。在之前的来源(我的帖子)中,它运行良好。我遇到问题的新来源。该列的格式化程序是“width: 100, sorttype: 'date', formatter: 'date', formatoptions: { newformat: 'd/m/y H:i' }”。日期在列中显示为“03/07/14 09:22”(与往常一样),但标题为“日期:/Date(1404372141000)/”我可以使用“if (colModel.name == "Date" ) {'convert displayValue'}" in customFormatDisplayField 但我不知道如何将 1404372141000 转换为 03/07/14 09:22。再次感谢您的帮助。
    • @rize17:不客气!使用相应分组列的格式化程序格式化分组标题是新问题。搜索引擎不在 cmets 中搜索。
    • 谢谢,我会在一个新问题下发布它
    猜你喜欢
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 1970-01-01
    • 2012-08-25
    相关资源
    最近更新 更多