我目前正在使用dojo数据网格,我希望能够遍历包含网格中每个字段的所有值的列表。例如,说我的网格有这些列:
<th field="name" width="200px">Name</th>
<th field="description" width="200px">Description</th>
<th field="type" width="200px">Type</th>
如何获取所有字段值的列表?在此示例中,列表应为[name,description,type]。谢谢你的帮助!
答案 0 :(得分:2)
我们试试这个。
首先,您需要知道dijit的ID。如果它是自动生成的(因为您在HTML中声明了DataGrid),则可能需要使用dojo.query
来查找DOM节点,并使用dijit.byNode(node)
来查找dijit。以下示例假定您知道ID。
var fields = [];
var getFields = function(object) {
// recurse to handle stacked rows
if(dojo.isArray(object)) {
dojo.forEach(object, function(o) {
getFields(o);
});
} else if(object.field) {
fields.push(object.field);
} else if(object.cells) {
getFields(object.cells);
}
};
var structure = dijit.byId("dojox_grid_DataGrid_0").structure;
getFields(structure);
console.log(fields);
这将以递归方式处理Grid的结构,查找具有field
属性的任何对象。
更新我必须为声明网格添加object.cells
支票。