Сетка данных Dojo - Получить значение для поля каждого столбца. - PullRequest
1 голос
/ 03 августа 2011

В настоящее время я использую сетку данных dojo и хочу иметь возможность циклически проходить по списку, содержащему все значения для каждого поля сетки. Например, скажем, моя сетка имеет следующие столбцы:

      <th field="name" width="200px">Name</th>
      <th field="description" width="200px">Description</th>
          <th field="type" width="200px">Type</th>

Как получить список всех значений полей? В этом примере список должен быть [имя, описание, тип]. Спасибо за любую помощь!

1 Ответ

2 голосов
/ 04 августа 2011

Давайте попробуем это.

Во-первых, вам нужно знать идентификатор диджита.Если он генерируется автоматически (поскольку вы объявляете свою 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 для декларативных сеток.

...