Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.02.2012, 14:30
Интересующийся
Отправить личное сообщение для biohazardo Посмотреть профиль Найти все сообщения от biohazardo
 
Регистрация: 19.03.2011
Сообщений: 11

ExtJS. Выбор грида из эдитора.
Есть грид, к нему прикрепляется к некоторым ячейкам прикрепляется эдитор ячеек. У эдитора есть листенер на нажатие кнопки энтер. Как в функции листенера получить грид в переменную?

var grid = Ext.create('Ext.grid.Panel',{
plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
    clicksToEdit: 2,
    pluginId: 'cellplugin'
})],
columns: [
    {
    header: 'Name',
    dataIndex: 'name',
    editor: {
        xtype: 'textfield',
        listeners: {
            specialkey: function(field, e) {
                if (e.getKey() == e.ENTER) {
                    !!!NEED TO ACCESS GRID HERE, FOR EXAMPLE IN VARIABLE!!!
                    var grid = SOME?CODE?;
                }
            }
        }
    }},
    // ...
],
// ...
Ответить с цитированием
  #2 (permalink)  
Старый 14.02.2012, 14:35
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Вот в этом коде переменная grid из первой строки будет замкнута в обработчике. То есть она уже, ее объявлять и инициализировать не надо.
А еще вроде бы в Ext у всех компонентов есть ссылка на содержащий контейнер - this.ownerCt (В 3.2 точно), так что можно добраться до грида. например var grid = this.ownerCt.ownerCt ... ownerCt;
__________________
readOnly
Ответить с цитированием
  #3 (permalink)  
Старый 14.02.2012, 14:40
Интересующийся
Отправить личное сообщение для biohazardo Посмотреть профиль Найти все сообщения от biohazardo
 
Регистрация: 19.03.2011
Сообщений: 11

Сообщение от poorking Посмотреть сообщение
Вот в этом коде переменная grid из первой строки будет замкнута в обработчике. То есть она уже, ее объявлять и инициализировать не надо.
А еще вроде бы в Ext у всех компонентов есть ссылка на содержащий контейнер - this.ownerCt (В 3.2 точно), так что можно добраться до грида. например var grid = this.ownerCt.ownerCt ... ownerCt;
И grid, и this.ownerCt - undefined. Их нет... Это если эдитор подставить функцией, которая ему вернет редактор. Редактор один на всех, и объявлен отдельно от гридов.

Последний раз редактировалось biohazardo, 14.02.2012 в 14:43.
Ответить с цитированием
  #4 (permalink)  
Старый 14.02.2012, 14:45
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

Очень странно что нет ссылки grid.

Вот смотрите
var o = {
    method: function () {
        alert(o);
    }
};

o.method();


o - определена, у вас точно такая же ситуация, это реальный код, точнее такой де по структуре, или вы обработчик где то в другом месте определяете?
__________________
readOnly
Ответить с цитированием
  #5 (permalink)  
Старый 14.02.2012, 14:48
Интересующийся
Отправить личное сообщение для biohazardo Посмотреть профиль Найти все сообщения от biohazardo
 
Регистрация: 19.03.2011
Сообщений: 11

Сообщение от poorking Посмотреть сообщение
или вы обработчик где то в другом месте определяете?
Грид подключает эдитор из функции, которая находится в какой то расширенной части класса:
header:'Недостача',
                columns:[this.getQtyColumn({
                    dataIndex:'corr_q',
                    editor:this.getQtyEditor(),
                    
                }),


Класс в котором эти функции создается так: Ext.define('Base.Editors', {
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ExtJs - Перевод книги "Lerning ExtJs" MaXyC ExtJS 17 22.06.2012 17:41
Получение данных строки грида при нажатии сторонней кнопки Allan Stark ExtJS 4 17.11.2011 19:21
ExtJS работа с иконками greynemo ExtJS 5 01.11.2011 14:40
[Книги] Learn ExtJS, ExtJS in Action mycoding Учебные материалы 0 23.10.2010 15:07
Москва, ищу JavaScript программиста отлично знающего ExtJS, от 10 USD / час. maximgb Работа 3 03.08.2010 14:34