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, время: 23:32. |