jqGrid拖放标题用于分组....组名

时间:2014-07-28 10:12:31

标签: jqgrid grouping

我已根据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很新。

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

亲切的问候,
莱恩

1 个答案:

答案 0 :(得分:0)

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

enter image description here

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

解决方案的主要思想是使用formatDisplayField groupingView属性,我最初在the answer中建议使用grouping: true, groupingView: { groupField: ["name", "invdate"], groupColumnShow: [false, false], formatDisplayField: [ customFormatDisplayField, customFormatDisplayField ] } 。当前版本的jqGrid支持该选项。如果可以使用例如选项

customFormatDisplayField

其中var customFormatDisplayField = function (displayValue, value, colModel) { return colModel.name + ": " + displayValue; } 回调函数定义为

name

几乎会显示您需要的结果,但会使用colModel的{​​{1}}属性,而不是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;
    };