используя relayEvent - PullRequest
       0

используя relayEvent

0 голосов
/ 03 мая 2011

У меня есть простой класс DelButton:

DelButton = Ext.extend(Ext.Button, {
    ,disabled: false
    ,listeners: {
        ,selectionchange: function() {
            alert('!!!!');
        }
    ,initComponent:function() {
        this.relayEvents(this.grid.getSelectionModel(), ['selectionchange']);
        DelButton.superclass.initComponent.call(this);
    }
});

buildTBar: function(config) {
    config.tbar = {}
    config.tbar.push(new DelButton({grid:this }))
}
,
buildConfig:function(config) {
    this.buildTBar(config)
}
,
AbstractEditorGridPanel = Ext.extend(Ext.grid.EditorGridPanel, {
    initComponent:function() {
        var config = {
            defaults:{border:true, autoHeight:false }
        };
        this.buildConfig(config);
        Ext.apply(this, Ext.apply(this.initialConfig, config));
        AbstractEditorGridPanel.superclass.initComponent.call(this);

    }

Почему relayEvent в этом случае не работает?(this.grid.getSelectionModel существует)

1 Ответ

0 голосов
/ 05 февраля 2012

У вас есть небольшие проблемы. Попробуйте это:

AbstractEditorGridPanel = Ext.extend(Ext.grid.EditorGridPanel, {
    initComponent:function() {
        var config = {
            defaults:{border:true, autoHeight:false }
        };
        this.buildConfig(config);
        Ext.apply(this, Ext.apply(this.initialConfig, config));
        this.callParent(arguments);
    },
    buildTBar: function(config) {
        config.tbar = [];
        config.tbar.push(new DelButton({grid:this, text: 'Text'}))
    },
    buildConfig:function(config) {
        this.buildTBar(config)
    }
});
...