【发布时间】:2017-05-18 06:26:28
【问题描述】:
我有 5 列显示从 Level0 到 Level4 的不同级别。我需要将所有这些级别列显示为 1 个名为 Levels 的主列,即 1 个列名级别具有 5 个名为 lv0、lv1...lv4 的子列?
我尝试了How to display multiple values in same column in jqgrid 中提供的解决方案 但它正在合并值,因此值与标头不匹配。
有没有办法将列合并为 1 列而不仅仅是值?
下面是 jqgrid 的 colModel 和 ColNames:
'detailViewcolNames': [
"Sub Project(s)",
"LV0",
"LV1",
"LV2",
"LV3",
"LV4",
"Status",
"%Comp",
"%Weight",
"Wins",
"Attention",
"Escalation",
"Comments",
"Next Steps"
],
'detailGridcolModel': [{
name: 'name',
width: '15%',
index: 'name',
title: false,
resizable: false,
sortable: false,
formatter: function(cellvalue, options, rowObject) {
var cellHtml = "<span class='gridTitle'>" + cellvalue + "</span>";
return cellHtml;
},
unformat: function(cellvalue, options, rowObject) {
return cellvalue;
},
}, {
name: "Status",
index: 'Status',
width: '5%',
title: false,
resizable: false,
sortable: false,
jsonmap: "from[Subtask].to.Status",
formatter: function(cellvalue, options, rowObject) {
return pathProjectModel.getStatusMapImage(cellvalue, options, rowObject);
}
}, {
name: 'LV0',
width: '5%',
title: false,
resizable: false,
sortable: false,
}, {
name: 'LV1',
width: '5%',
title: false,
resizable: false,
sortable: false,
}, {
name: 'LV2',
width: '5%',
title: false,
resizable: false,
sortable: false,
}, {
name: 'LV3',
width: '5%',
title: false,
resizable: false,
sortable: false,
}, {
name: 'LV4',
width: '5%',
title: false,
resizable: false,
sortable: false,
}, {
name: 'attribute[Percent Complete]',
index: 'attribute[Percent Complete]',
width: '10%',
title: false,
resizable: false,
sortable: false,
jsonmap: "attribute[Percent Complete]",
}, {
name: 'Weight',
index: 'Weight',
width: '10%',
title: false,
resizable: false,
hidden: true,
sortable: false,
jsonmap: "Weight",
}, {
name: "Win",
index: "Win",
width: '15%',
title: false,
resizable: false,
sortable: false,
jsonmap: "Win",
formatter: function(cellvalue, options, rowObject) {
var cellHtml = pathProjectModel.multiValuesFormatter(cellvalue, options, rowObject);
return cellHtml;
}
}, {
name: "Attention",
index: "Attention",
width: '15%',
title: false,
resizable: false,
sortable: false,
formatter: function(cellvalue, options, rowObject) {
var cellHtml = pathProjectModel.multiValuesFormatter(cellvalue, options, rowObject);
return cellHtml;
},
jsonmap: "Attention"
}, {
name: 'Escalation',
index: 'Escalation',
width: '15%',
title: false,
resizable: false,
sortable: false,
formatter: function(cellvalue, options, rowObject) {
var cellHtml = pathProjectModel.multiValuesFormatter(cellvalue, options, rowObject);
return cellHtml;
},
jsonmap: "Escalation"
}, {
name: 'Comments',
index: 'Comments',
width: '15%',
title: false,
resizable: false,
sortable: false,
formatter: function(cellvalue, options, rowObject) {
var cellHtml = pathProjectModel.multiValuesFormatter(cellvalue, options, rowObject);
return cellHtml;
},
jsonmap: "Comments"
}, {
name: 'Next Steps',
index: 'Next Steps',
width: '15%',
title: false,
resizable: false,
sortable: false,
formatter: function(cellvalue, options, rowObject) {
var cellHtml = pathProjectModel.multiValuesFormatter(cellvalue, options, rowObject);
return cellHtml;
},
jsonmap: "Next Steps"
}, ]
以下是示例数据。这里 id 属性包含 rowid
responseObj = {
id: "2432.XXXXXXXXXXXXXX",
"name": "project Name",
"Status": "On Track",
"LV0": "100",
"LV1": "90.0",
"LV2": "0.0",
"LV3": "12.0",
"LV4": "",
"attribute[Percent Complete]": "0.0",
"Weight": "30.0",
"Win": [
["fasdfgasdf"]
],
"Attention": [
["sdfasdga"]
],
"Escalation": [
["fedgsdshsdfh"]
],
"Comments": [
["dgdfhdfhdfuiopjnjkn"]
],
"Next Steps": [
["vbmcbvndfgec"]
]
}
【问题讨论】:
-
有很多方法可以实现您的要求。了解其他信息很重要:1)您使用哪个
datatype? ("local","json","xml"), ... 2) 你使用loadonce: true吗? (如果你用的不是"local"datatype) 3)jqGrid的输入数据是什么格式的? (例如 2-3 行和 3-4 个属性就足够了) 4) 您使用(可以使用)jqGrid 的哪个版本 以及 jqGrid 的哪个fork? (free jqGrid、商业Guriddo jqGrid JS 或版本 -
请回答您的问题:1) 数据类型:“本地”2) 我没有使用 loadonce: true 4.) 版本 4.6.0
-
1) 数据类型 : "local" 2) 我没有使用 loadonce: true 3.) 输入数据是 JSON 格式 4.) 以下版本 4.6.0 是示例输入数据:{ 注意: Array(1) 评论:Array(1) 升级:Array(1) LV0:“100.0” LV1:“100.0” LV2:“38.3” LV3:“0.0” LV4:“0.0” 后续步骤:Array(1) 状态: “On Track” 权重:“30.0” 获胜:Array(1) 属性[Percent Complete]:“39.2” id:“2432_XXXXXXXXXXXXX” 名称:“prjectName”}
-
您使用哪种格式的输入数据?数据的格式真的很重要。您应该单击“编辑”链接并将您的问题附加到所有其他信息中。 想想你的问题的其他读者。 真的需要使用复古版本 4.6.0 吗?它已经有 3 年的历史了,而且很长时间以来都不受支持。我建议您取消升级到免费的 jqGrid 4.14.0。它是我开发的 jqGrid 的分支,您可以像 jqGrid 4.6.0 一样免费使用它。
-
您能以 JavaScript 格式 发布数据示例吗?
lv0, lv1... lv4在哪里?哪个属性包含 id (rowid)?colModel最重要的列在哪里?
标签: javascript jquery jqgrid