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?; } } } }}, // ... ], // ... |
Вот в этом коде переменная grid из первой строки будет замкнута в обработчике. То есть она уже, ее объявлять и инициализировать не надо.
А еще вроде бы в Ext у всех компонентов есть ссылка на содержащий контейнер - this.ownerCt (В 3.2 точно), так что можно добраться до грида. например var grid = this.ownerCt.ownerCt ... ownerCt; |
Цитата:
|
Очень странно что нет ссылки grid.
Вот смотрите var o = { method: function () { alert(o); } }; o.method(); o - определена, у вас точно такая же ситуация, это реальный код, точнее такой де по структуре, или вы обработчик где то в другом месте определяете? |
Цитата:
header:'Недостача', columns:[this.getQtyColumn({ dataIndex:'corr_q', editor:this.getQtyEditor(), }), Класс в котором эти функции создается так: Ext.define('Base.Editors', { |
Часовой пояс GMT +3, время: 02:13. |