簡體   English   中英

ExtJs按鈕'click'監聽器轉到class方法

[英]ExtJs Button 'click' listener to go to class method

鑒於此類代碼:

///
/// FORM tBasicFrm
///
Ext.define('tBasicBrwFrm',{ extend: 'Ext.panel.Panel'
    ,id: 'tBasicBrwFrm'
    ,layout: 'fit'

    ///
    /// CUSTOM PROPERTIES
    ///
    ,nOpcion: 0
    ,lVRet: false
    ,oParent: null
    ,oModel: null
    ,oStore: null
    ,oGrid: null
    ,oRecord: null
    ,oActividad: null

    ///
    /// EVENTS
    ///
    ,listeners:{
        destroy: function(){            
            if( this.oStore != null ){
                this.oStore.destroy();
            }

            if( this.oModel != null ){
                this.oModel.destroy();
            }

            if( this.oGrid != null ){
                this.oGrid.destroy();
            }

            if( this.oRecord != null ){
                this.oRecord.destroy();
            }

            if( this.oActividad != null ){
                this.oActividad = null;
            }

            if( this.oParent != null && this.oParent != 'undefined' && Ext.getClass(this.oParent).superclass.self.getName() === 'tBasicFrm'){
                if(!this.oParent.isVisible()){
                    this.oParent.show();
                }
            }
        }
        ,render: function(){
            if(this.oParent != null && this.oParent != 'undefined' && Ext.getClass(this.oParent).superclass.self.getName() === 'tBasicFrm' ){
                this.oParent.hide();
            }
        }
    }

    ///
    /// METHODS
    ///
    ,cargaActividad: function(){
        var oFecha = new Date();
        var oHora  = new Date();
        var nDia   = oFecha.getDate();
        var nMes   = oFecha.getMonth() + 1;
        var nAnyo  = oFecha.getFullYear();

        if( nDia < 10 ){
            nDia = '0' + nDia;
        }

        if( nMes < 10 ){
            nMes = '0' + nMes;
        }

        oFecha = nDia+'/'+nMes+'/'+nAnyo;
        oHora  = oHora.getHours() + ':' + oHora.getMinutes() + ':' + oHora.getSeconds();

        this.oActividad = { 
            cAlias: ""
            ,cTipo: ""
            ,cEstado: ""
            ,dFecha: oFecha
            ,cHoraIni: oHora
            ,cCodigo: ""
            ,cNumDoc: ""
            ,cTipoDoc: ""
            ,cImporte: ""
            ,cFPago: ""
            ,cEstado: ""
            ,cObserva: ""
            ,cImpresa: ""
        }
    }
    ,grabaActividad: function(){

    }
    ,Cerrar: function(){

    }
    ,Insertar: function(){

    }
    ,Modificar: function(){

    }
    ,Eliminar: function(){

    }
    ,Consultar: function(){

    }
    ,Imprimir: function(){

    }
    ,Filtrar: function(){

    }

    ///
    /// CONTROLS
    ///
    ,dockedItems: [
        {
            xtype: 'toolbar',
            dock: 'top',autoScroll: true,
            layout: {
                type: 'hbox',
                align: 'middle'
            },
            items: [
                {
                    xtype: 'button',
                    text: 'Cerrar',
                    width: 120,
                    icon: 'img/16x16/Salir16.png',
                    iconAlign: 'left',
                    listeners: {
                        click: 'Cerrar'
                    }
                },
                {
                    xtype: 'button',
                    text: 'Agregar',
                    width: 120,
                    icon: 'img/16x16/Añadir16.png',
                    iconAlign: 'left',
                    listeners: {
                        click: 'Insertar'
                    }
                },
                {
                    xtype: 'button',
                    text: 'Modificar',
                    width: 120,
                    icon: 'img/16x16/Editar16.png',
                    iconAlign: 'left',
                    listeners: {
                        click: 'Modificar'
                    }
                },
                {
                    xtype: 'button',
                    text: 'Consultar',
                    width: 120,
                    icon: 'img/16x16/Consultar16.png',
                    iconAlign: 'left',
                    listeners: {
                        click: 'Consultar'
                    }
                },
                {
                    xtype: 'button',
                    text: 'Eliminar',
                    width: 120,
                    icon: 'img/16x16/Eliminar16.png',
                    iconAlign: 'left',
                    listeners: {
                        click: 'Eliminar'
                    }
                }
            ]
        }
    ]
});

我找不到配置按鈕“Cerrar”監聽器去方法“Cerrar”的方法。

我試圖擴大所有范圍並且沒有運氣。

有誰能夠幫助我?

我一直在玩弄此代碼,並設法按鈕單擊處理程序使用下面的聽眾代碼來調用合適的功能,但它並不完全正確的感覺,通常你可以范圍的按鈕this在的范圍內傳遞父組件,但它似乎不適合我。

我將繼續調查范圍方法,但在此期間,您應該能夠使用以下兩種方法之一:

// method 1
xtype: 'button',
...
listeners: {
    click: function() { this.up('panel').Cerrar(); }
}

// method 2
xtype: 'button',
...
listeners: {
    click: function() { this.ownerCt.ownerCt.Cerrar(); }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM