我已根据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很新。
如果有人能提供帮助,我们将不胜感激。
亲切的问候,
莱恩
答案 0 :(得分:0)
首先,the updated demo提供了问题的解决方案:
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;
};