Давайте попробуем это.
Во-первых, вам нужно знать идентификатор диджита.Если он генерируется автоматически (поскольку вы объявляете свою DataGrid в HTML), вам может потребоваться использовать dojo.query
, чтобы найти узел DOM, и использовать dijit.byNode(node)
, чтобы найти dijit.В приведенном ниже примере предполагается, что вы знаете идентификатор.
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
.
Update Мне пришлось добавить чек для object.cells
для декларативных сеток.