extjs监听子组件事件

问题描述 投票:0回答:1

我创建包含按钮的自定义面板。

Ext.define('TEST.TPL_BTN_Table', {
    extend: 'Ext.panel.Panel',  
    xtype: 'TPL_BTN_Table',

    BTN_New : Ext.create('Ext.Button',  {
        iconCls: 'icon-add',
        width: 24,  
        height: 24,

        listeners: {
            scope: this,

            render: function(c) {
                Ext.create('Ext.tip.ToolTip', {
                    target: c.getEl(),
                    html: 'New'
                });
            }                
        }
    }), 

    constructor: function( config) {
        
        config= {
            layout: {
                    type: 'vbox',
                    align : 'center',
                    pack  : 'start',
            },
            width: 35,
            border: false,
            items: [{
                    items: this.BTN_New,
                    border: false,
                    height: 30
            },{
                    items: this.BTN_Modify,
                    border: false,
                    height: 30
            },{
                    items: this.BTN_Delete,
                    border: false,
                    height: 30
            },{
                    items: this.BTN_Print,
                    border: false,
                    height: 30

            }] // end items 
        }; // end config
        
        
    
        this.superclass.constructor.call(this, config);

来自来电者,这是我所做的

       this.PAN_Button = Ext.create('TEST.TPL_BTN_Table', {
        });

        this.PAN_Button.BTN_New.on({
            scope: this,
            click: function() { 
                //  received click event
            }, 
        });     
type here

我尝试使用

fireEvent()
创建自定义事件,但不知何故侦听器未捕获自定义事件。

我可以听来自

this.PAN_Button
的所有按钮点击,而不是像
this.PAN_Button.BTN_New.on()
this.PAN_Button.BTN_Modify.on()
this.PAN_Button.BTN_Delete.on()
那样逐个点击吗?

extjs
1个回答
0
投票

范围必须是

'this'
而不是
this

如果您发布完整的示例,我可以提供更多帮助。您刚刚发布了面板的部分内容。

创建一个小提琴总是有帮助的。这样就更容易提供帮助。

干杯 托斯顿

© www.soinside.com 2019 - 2024. All rights reserved.