-
Anonymous
JqGrid. Получить строки из подсетки
Сообщение
Anonymous »
У меня есть jqGrid с подсетками.
Как получить строки из subGrid? Что я делаю не так?
Функция ниже, где я пытаюсь получить строки, но всегда получаю ошибки.
Код: Выделить всё
loadComplete: function() {
var rowIds = $("#list4").getDataIDs();
$.each(rowIds, function (index, rowId)
{
//var rows = jQuery("#list4_"+rowId+"_t").GetRowCount();
//var rows = jQuery("#list4_"+rowId+"_t").getRowData(rowId);
var sgtable = $("#list4_" + rowId + "_t");
$.each(sgtable.rows, function(i, rId) //rows is undefined
{
console.log("rId:" + rId);
var cdn = jQuery("#list4_"+rowId+"_t").jqGrid('getCell', rId, 'ItemTypeName');
var cdv = jQuery("#list4_"+rowId+"_t").jqGrid('getCell', rId, 'ItemValue');
console.log("cdn:" + cdn);
console.log("cdv:" + cdv);
});
});
}
var rows = $("#list4_" + rowId + "_t").getDataIDs();
строки всегда == 0.
ОБНОВЛЕНО!
Сетка:
Полный код ниже.
Код: Выделить всё
jQuery("#list4").jqGrid({
url: getDataUrl,
datatype: "json",
autowidth: false,
shrinkToFit: true,
height: 'auto',
loadonce:true,
colNames: ['ContractNo', 'ParentName', 'ItemTypeName', 'ItemValue', 'ParentItemID', 'ItemID'],
colModel:
[
{ name: 'ContractNo', index: 'ContractNo', hidden: true },
{ name: 'ParentName', index: 'ParentName', hidden: true },
{ name: 'ItemTypeName', index: 'ItemTypeName'/*,width: gwdth/2 */},
{ name: 'ItemValue', index: 'ItemValue'/*,width:gwdth/2*/ },
{ name: 'ParentItemID', index: 'ParentItemID', hidden: true },
{ name: 'ItemID', index: 'ItemID', hidden: true }
],
subGrid: true,
caption: "Contract items",
subGridOptions:
{
"expandOnLoad":true
},
gridComplete: function () {
var rowIds = $("#list4").getDataIDs();
$.each(rowIds, function (index, rowId) {
$("#list4").expandSubGridRow(rowId);
var sdata = $("#list4_" + rowId + "_t").getDataIDs();
console.log("ri: "+rowId+". sdlEXP:" + sdata.length);
});
},
subGridRowExpanded: function (subgrid_id, row_id)
{
var subgrid_table_id, pager_id;
// gwdth = $('div').width();
subgrid_table_id = subgrid_id + "_t";
pager_id = "p_" + subgrid_table_id;
console.log("sqt_id: "+subgrid_table_id);
$("#" + subgrid_id).html("Testing");
jQuery("#" + subgrid_table_id).jqGrid({
colNames: ['ContractNo', 'ParentName', 'ItemTypeName', 'ItemValue', 'ParentItemID', 'ItemID'],
colModel:
[
{ name: 'ContractNo', index: 'ContractNo', hidden: true },
{ name: 'ParentName', index: 'ParentName', hidden: true },
{ name: 'ItemTypeName', index: 'ItemTypeName'/*, width: gwdth/2 - 102*/},
{ name: 'ItemValue', index: 'ItemValue'/*, width: gwdth/2*/},
{ name: 'ParentItemID', index: 'ParentItemID', hidden: true },
{ name: 'ItemID', index: 'ItemID', hidden: true }
],
height: 'auto',
rowNum: 20,
// sortorder: "asc",
shrinkToFit: true,
url: getDataUrl + "?subgrid=" + getCell(row_id),
// datastr: topicjson,
// datatype: "jsonstring",
datatype: "json",
treeGrid: true,
treeGridModel: "adjacency",
ExpandColumn: "ItemTypeName",
// sortname: 'ParamNameEN',
//loadonce: true,
ExpandColClick: true,
// SortTree:-1,
// sortable: true,
viewrecords: true,
url: getDataUrl + "&subgrid=" + getCell(row_id),
});
},
loadComplete: function() {
var sn = 150;
var sv = 400;
var rowIds = $("#list4").getDataIDs();
console.log("rids:" + rowIds.length);
$.each(rowIds, function (index, rowId)
{
console.log("#list4_" + rowId + "_t");
var sdata = $("#list4_" + rowId + "_t").getDataIDs();
console.log("sdl:" + sdata.length);
});
}
});
есть выходные данные на консоль:
//loadcomplite
rids:2 — это означает, что у нас есть 2 строки в основной сетке. Это
правда.
Но когда я пытаюсь получить строки подсеток, он возвращает 0
sdl:0 - ПОЧЕМУ?
Но все данные загружаются!
Если я не могу получить данные из subgrid в loadComplete, как получить данные подсеток после загрузки сетки?
какое событие мне нужно использовать?
Подробнее здесь:
https://stackoverflow.com/questions/145 ... om-subgrid
1766711370
Anonymous
У меня есть jqGrid с подсетками.
Как получить строки из subGrid? Что я делаю не так?
Функция ниже, где я пытаюсь получить строки, но всегда получаю ошибки.
[code]loadComplete: function() {
var rowIds = $("#list4").getDataIDs();
$.each(rowIds, function (index, rowId)
{
//var rows = jQuery("#list4_"+rowId+"_t").GetRowCount();
//var rows = jQuery("#list4_"+rowId+"_t").getRowData(rowId);
var sgtable = $("#list4_" + rowId + "_t");
$.each(sgtable.rows, function(i, rId) //rows is undefined
{
console.log("rId:" + rId);
var cdn = jQuery("#list4_"+rowId+"_t").jqGrid('getCell', rId, 'ItemTypeName');
var cdv = jQuery("#list4_"+rowId+"_t").jqGrid('getCell', rId, 'ItemValue');
console.log("cdn:" + cdn);
console.log("cdv:" + cdv);
});
});
}
var rows = $("#list4_" + rowId + "_t").getDataIDs();
[/code]
строки всегда == 0.
[b]ОБНОВЛЕНО![/b]
Сетка:
[img]https://i.sstatic.net/J2hPy.png[/img]
Полный код ниже.
[code]jQuery("#list4").jqGrid({
url: getDataUrl,
datatype: "json",
autowidth: false,
shrinkToFit: true,
height: 'auto',
loadonce:true,
colNames: ['ContractNo', 'ParentName', 'ItemTypeName', 'ItemValue', 'ParentItemID', 'ItemID'],
colModel:
[
{ name: 'ContractNo', index: 'ContractNo', hidden: true },
{ name: 'ParentName', index: 'ParentName', hidden: true },
{ name: 'ItemTypeName', index: 'ItemTypeName'/*,width: gwdth/2 */},
{ name: 'ItemValue', index: 'ItemValue'/*,width:gwdth/2*/ },
{ name: 'ParentItemID', index: 'ParentItemID', hidden: true },
{ name: 'ItemID', index: 'ItemID', hidden: true }
],
subGrid: true,
caption: "Contract items",
subGridOptions:
{
"expandOnLoad":true
},
gridComplete: function () {
var rowIds = $("#list4").getDataIDs();
$.each(rowIds, function (index, rowId) {
$("#list4").expandSubGridRow(rowId);
var sdata = $("#list4_" + rowId + "_t").getDataIDs();
console.log("ri: "+rowId+". sdlEXP:" + sdata.length);
});
},
subGridRowExpanded: function (subgrid_id, row_id)
{
var subgrid_table_id, pager_id;
// gwdth = $('div').width();
subgrid_table_id = subgrid_id + "_t";
pager_id = "p_" + subgrid_table_id;
console.log("sqt_id: "+subgrid_table_id);
$("#" + subgrid_id).html("Testing");
jQuery("#" + subgrid_table_id).jqGrid({
colNames: ['ContractNo', 'ParentName', 'ItemTypeName', 'ItemValue', 'ParentItemID', 'ItemID'],
colModel:
[
{ name: 'ContractNo', index: 'ContractNo', hidden: true },
{ name: 'ParentName', index: 'ParentName', hidden: true },
{ name: 'ItemTypeName', index: 'ItemTypeName'/*, width: gwdth/2 - 102*/},
{ name: 'ItemValue', index: 'ItemValue'/*, width: gwdth/2*/},
{ name: 'ParentItemID', index: 'ParentItemID', hidden: true },
{ name: 'ItemID', index: 'ItemID', hidden: true }
],
height: 'auto',
rowNum: 20,
// sortorder: "asc",
shrinkToFit: true,
url: getDataUrl + "?subgrid=" + getCell(row_id),
// datastr: topicjson,
// datatype: "jsonstring",
datatype: "json",
treeGrid: true,
treeGridModel: "adjacency",
ExpandColumn: "ItemTypeName",
// sortname: 'ParamNameEN',
//loadonce: true,
ExpandColClick: true,
// SortTree:-1,
// sortable: true,
viewrecords: true,
url: getDataUrl + "&subgrid=" + getCell(row_id),
});
},
loadComplete: function() {
var sn = 150;
var sv = 400;
var rowIds = $("#list4").getDataIDs();
console.log("rids:" + rowIds.length);
$.each(rowIds, function (index, rowId)
{
console.log("#list4_" + rowId + "_t");
var sdata = $("#list4_" + rowId + "_t").getDataIDs();
console.log("sdl:" + sdata.length);
});
}
});
[/code]
есть выходные данные на консоль:
//loadcomplite
rids:2 — это означает, что у нас есть 2 строки в основной сетке. Это
правда.
Но когда я пытаюсь получить строки подсеток, он возвращает 0
sdl:0 - ПОЧЕМУ?
Но все данные загружаются!
Если я не могу получить данные из subgrid в loadComplete, как получить данные подсеток после загрузки сетки?
какое событие мне нужно использовать?
Подробнее здесь: [url]https://stackoverflow.com/questions/14592514/jqgrid-get-rows-from-subgrid[/url]