我目前正在使用 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]。感谢您的帮助!
最佳答案
让我们试试这个。
首先,您需要知道 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
检查。
关于javascript - Dojo datagrid - 检索每列字段的值。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6931726/