Получение информации о выбранной ячейке в dgrid (dojo)

Я использую компонент dgrid в своем проекте dojo. У меня есть одна сетка и кнопка. Я включил выбор ячеек в сетке.

Как получить информацию (данные) выбранной ячейки? Мой вариант использования: всякий раз, когда я нажимаю кнопку, я должен иметь возможность получать данные, связанные с выбранной ячейкой в ​​сетке.

Я попытался найти документацию по адресу https://github.com/SitePen/dgrid/wiki/Components-Mixins, но не смог найти никакой соответствующей информации.


person TechnoCrat    schedule 26.04.2012    source источник


Ответы (3)


В примере на https://github.com/SitePen/dgrid/blob/master/demos/dTuned/index.html сетка создается с помощью миксинов.

window.grid = new (declare([Grid, Selection, Keyboard, Hider]))({
    ...
}, "grid");

Миксин выбора имеет следующее свойство:

// selection:
//      An object where the property names correspond to 
//      object ids and values are true or false depending on whether an item is selected
selection: {},
person Craig Swing    schedule 26.04.2012
comment
Мой вопрос касается dgrid(gridFromHtml) (ссылка: github.com/SitePen/dgrid), а НЕ о DataGrid в доджоксе. Вышеупомянутый метод не работает для dgrid. - person TechnoCrat; 26.04.2012
comment
Моя ошибка. Я не использовал эти виджеты раньше. Но быстро просмотрев код, я обновил свой ответ. Надеюсь это поможет. - person Craig Swing; 26.04.2012
comment
как получить выбор конкретной ячейки, а не всей строки? - person MozenRath; 08.05.2012

Например, вы можете реализовать метод для возврата выбранных ячеек, используя выберите свойство и cell() из сетки.

getSelectedCells: function() {
  var cell,
      results = [];

  for (var rowIdx in grid.selection) {
    for (var colIdx in grid.selection[rowIdx]) {
      cell = grid.cell(rowIdx, colIdx);
      results.push(cell);
    }
  }

  return results;
}
person Ivo Silva    schedule 06.04.2013

Вам следует использовать примесь CellSelection.

Доступ к выбранным ячейкам можно получить с помощью объекта selection или внутри событий dgrid-select и dgrid-deselect с помощью его свойства cells.

Из документации миксина:

Объект выбора хранит вложенный хэш, где внешний хэш определяется идентификатором элемента, а внутренние хэши — идентификатором столбца.

События dgrid-select и dgrid-deselect по-прежнему срабатывают, но включают свойство ячеек, содержащее массив объектов ячеек, а не свойство строк.

person Wacek    schedule 02.04.2016