我使用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