Я создал сетку с несколькими уровнями подсетей, используя jqGrid и с небольшой помощью от этого answer. Вот то, что я в настоящее время:Как показать subgrid 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: То, что я имею в виду, также не является популяцией субгрида. Вместо этого вы можете включить в ** родительскую сетку ** взломать. Это предотвратит добавление значка «+» в строке родительской сетки, поэтому никакая подсечка никогда не будет заполнена для строки. Кстати, я подготовил модификацию [free jqGrid] (https://github.com/free-jqgrid/jqGrid) (форвард jqGrid, который я создаю, начиная с конца 2014 года), который вводит обратный вызов hasSubgrid' в 'subGridOptions '. Обратный вызов сообщает jqGrid, в котором строки должны быть добавлены значок «+» и в которых нет. Я скоро опубликую изменения и сообщит вам. – Oleg
@MoslemBenDhaou: Я разместил модификацию [здесь] (https://github.com/free-jqgrid/jqGrid/commit/6922b6e184490426ffdbc23cd9ed74faebbee166).Таким образом, вы можете загрузить последний код из GitHub или использовать [urls] (https://github.com/free-jqgrid/jqGrid/wiki/Access-free-jqGrid-from-different-CDNs#access-githib-code -из-rawgit). – Oleg