0

私は単純なDelButtonクラスを持っています:

DelButton = Ext.extend(Ext.Button、{
    、無効:false
    、リスナー:{
        、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 = {
            デフォルト:{border:true、autoHeight:false}
        };
        this.buildConfig(config);
        Ext.apply(this、Ext.apply(this.initialConfig、config));
        AbstractEditorGridPanel.superclass.initComponent.call(this);

    }

この場合、relayEventが機能しないのはなぜですか?(this.grid.getSelectionModelが存在します)

4

1 に答える 1

0

いくつかの小さな問題があります。これを試して:

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)
    }
});
于 2012-02-05T18:12:39.323 に答える