【发布时间】:2011-10-28 04:39:49
【问题描述】:
我想遍历网格对象中包含的所有数据。 我的网格有一个包含子网格对象的定义,并以这种方式创建
var grid = $(gridID);
var pager = $(pagerID);
grid.jqGrid({
url: GetBaseWSUrl() + 'MyWs.asmx/MyMethod',
colNames: ['UMLT', 'FF', 'PC'],
colModel: [
{ name: 'Name', index: 'Name', width: 180, template: colTextTemplate },
{ name: 'AlertFF', index: 'AlertFF', width: 22, align: 'center', sortable: false, formatter: "checkbox", formatoptions: { disabled: false} },
{ name: 'AlertPC', index: 'AlertPC', width: 22, align: 'center', sortable: false, formatter: "checkbox", formatoptions: { disabled: false} }
],
[...]
subGrid: true,
subGridOptions: {
"plusicon": "ui-icon-triangle-1-e",
"minusicon": "ui-icon-triangle-1-s",
"openicon": "ui-icon-arrowreturn-1-e",
"reloadOnExpand": true,
"selectOnExpand": true
},
subGridRowExpanded: function (subgrid_id, row_id) {
var subgrid_table_id = subgrid_id + "_t";
$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table>");
$("#" + subgrid_table_id).jqGrid({
[...] omitted for brevity
});
}
});
我知道我可以使用这样的代码来迭代数据,并且它有效地适用于第一级,但我正在寻找一种方法,即使在子网格数据上也允许我进行迭代。
var grid = $('#grid');
var m = grid.getDataIDs();
for (var i = 0; i < m.length; i++) {
var record = grid.getRowData(m[i]);
//do something with the record
}
有没有办法做到这一点?
【问题讨论】:
-
您要遍历
loadComplete中包含的网格吗?你想在每一行上做什么?您要检查某些列的包含或在某些列中进行更改吗?例如,您是否想根据包含的列更改行的背景颜色?我想你明白我的问题。更重要的一件事:你使用本地的datatype还是loadonce:true? -
我正在使用
datatype: json。不使用loadonce: true。我需要遍历行并检查一列的值(具有复选框格式)。如果选择了该列,那么我需要迭代该行的子网格以读取一些值。不需要修改任何数据...
标签: jquery jquery-plugins jqgrid