我使用jqGrid创建了一个具有多个子网格级别的网格,并从answer获得了一些帮助。以下是我目前有:如何仅在特定行上显示jqGrid子网格?
我想修改的方式,只显示子格是否有数据显示。换句话说,如果count > 0
。按道理我尝试添加的条件(以下伪代码,基于前面提到的答案):
原始代码
var gridParams = {
datatype: 'local',
data: myGridData,
colNames: ['Column 1', 'Column 2'],
colModel: [
{ name: 'col1', width: 200 },
{ name: 'col2', width: 200 }
],
...
subGrid: true,
subGridRowExpanded: function (subgridDivId, rowId) {
var subgridTableId = subgridDivId + "_t";
$("#" + subgridDivId).html("<table id='" + subgridTableId + "'></table>");
$("#" + subgridTableId).jqGrid({
datatype: 'local',
data: mySubgrids[rowId],
colNames: ['Col 1', 'Col 2', 'Col 3'],
colModel: [
{ name: 'c1', width: 100 },
{ name: 'c2', width: 100 },
{ name: 'c3', width: 100 }
],
...
});
}
}
$("#grid").jqGrid(gridParams);
调整代码
var gridParams = {
datatype: 'local',
data: myGridData,
colNames: ['Column 1', 'Column 2'],
colModel: [
{ name: 'col1', width: 200 },
{ name: 'col2', width: 200 }
],
...
}
// Condition added HERE
if (count > 0)
{
gridParams.subGrid = true;
gridParams.subGridRowExpanded = function (subgridDivId, rowId) {
var subgridTableId = subgridDivId + "_t";
$("#" + subgridDivId).html("<table id='" + subgridTableId + "'></table>");
$("#" + subgridTableId).jqGrid({
datatype: 'local',
data: mySubgrids[rowId],
colNames: ['Col 1', 'Col 2', 'Col 3'],
colModel: [
{ name: 'c1', width: 100 },
{ name: 'c2', width: 100 },
{ name: 'c3', width: 100 }
],
...
});
}
}
$("#grid").jqGrid(gridParams);
但只是失败惨不忍睹:
这是根本不支持或我做错了什么?
我在想没有在第一个地方填充一个空网格,但是这个hgack完全可以做到这一点!谢谢! –
@MoslemBenDhaou:我的意思是不是人口的子网格。相反,你可以在**父网格**中包含黑客。它将防止在父网格的行中添加“+”图标,因此不会为该行填充子网格。顺便说一下,我准备修改[免费jqGrid](https://github.com/free-jqgrid/jqGrid)(我从2014年底开始开发的jqGrid的分支),它在'subGridOptions'中引入了'hasSubgrid'回调'。该回调通知jqGrid应在哪些行中添加“+”图标,而哪些不是。我会很快发布修改并通知您。 – Oleg
@MoslemBenDhaou:我发布了修改[这里](https://github.com/free-jqgrid/jqGrid/commit/6922b6e184490426ffdbc23cd9ed74faebbee166)。所以你可以从GitHub下载最新的代码或者使用[url](https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs#access-githib-code -from-rawgit)。 – Oleg