我正在计划生成整个网格数据的自定义XML,我需要遍历每一行以及网格的每个单元格。
如下所示,可以轻松遍历行。我面临的唯一问题是遍历单元格,因为getRowData返回键值对而不是数组。
var ids = jQuery("#jgrid").jqGrid('getDataIDs');
//traverse the rows
for (var i = 0; i < ids.length; i++) {
var rowdata = $("#jgrid").getRowData(ids[i]);
var res = "";
// Traverse the cells which does not work
for (var j = 0; j < rowdata.length; j++) {
...
....logic to generate Xml element for each cell
}
}
我不想硬编码列名,因为我打算将它用于所有网格。所以解决方案必须是Generic。
有什么想法吗? 在此先感谢。
答案 0 :(得分:6)
使用rows和cells枚举网格中所有数据的最简单方法之一。重要的是要理解,jqGrid使用HTML <table>
表示网格数据,<tr>
表示行。 jQuery对象是DOM元素的包装器。例如,jQuery("#jgrid")[0]
是实现HTMLTableElement的DOM元素。实际上所有的Web浏览器都支持DOM,因此您可以安全地使用它。 jqGrid内部使用HTMLTableElement,HTMLTableRowElement和HTMLTableCellElement非常永久。如果您检查在当前代码中使用的getDataIDs和getRowData的源代码,您将看到jqGrid密集使用rows
的{{1}} DOM属性。
在the asnwer和another one中,您会找到枚举网格数据的代码示例。
通常,枚举由
组成<table>