Dojo datagrid - 检索每列字段的值。

时间:2011-08-03 18:55:16

标签: javascript datagrid dojo field

我目前正在使用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]。谢谢你的帮助!

1 个答案:

答案 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支票。