Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Получение данных строки грида при нажатии сторонней кнопки (https://javascript.ru/forum/extjs/18921-poluchenie-dannykh-stroki-grida-pri-nazhatii-storonnejj-knopki.html)

Allan Stark 20.07.2011 14:50

Получение данных строки грида при нажатии сторонней кнопки
 
Прошу прощения за немного ламерские вопросы, углубленно ExtJs начал изучать только недавно.

Есть ExtJs 4.0.х

Есть грид, связанный с JSON-вским стореджем, данные подтягиваются сценарием из SQL сервера, грид отображает из стореджа пару полей.

Есть кнопка, при нажатии на которую должна удаляться строка из таблицы данных, читаемая стореджем грида.

Вопрос.
Как получить строку с данными (для извлечения из нее id удаляемого элемента) при нажатии на кнопку ?

Первое что пришло на ум - обрабатывать в гриде эвент выбора строки и писать в стороннюю переменную id или ссылку на элемент стореджа, а затем на клике кнопки эти данные считывать и передавать ajax запросом в сценарий.

Может есть красивее путь ?

Black_Prince 20.07.2011 16:02

handler: function(){
//получаем модель из grid
      var sm = grid.getSelectionModel();
//проверяем была ли выбрана строка
      if (sm.hasSelection())
      {
//получаем поле id из выбранной строки. 
//Поле соответственно  должно существовать
//оно может быть как скрытым (не показываться в гриде), так и отдельным столбцом
           var id = sm.selected.items[0].data.id;
............................


возможно есть и более красивый путь, особенно для строки sm.selected.items[0].data.id - но так работает тоже.

nikolaich 21.07.2011 09:57

Можно так:
var id = sm.getSelected().data.id;

Хыиуду 17.11.2011 16:50

А если это EditorGridPanel, то grid.getSelectionModel().selection.record.data.id

nekto_O 17.11.2011 19:21

...
var record = grid.getSelectionModel().getSelected();
if(!record) return false;
var id = record.get('id');
...


Часовой пояс GMT +3, время: 13:45.