Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExtJs通过视图访问控制器_Javascript_Extjs_Extjs5 - Fatal编程技术网

Javascript ExtJs通过视图访问控制器

Javascript ExtJs通过视图访问控制器,javascript,extjs,extjs5,Javascript,Extjs,Extjs5,我有一个MVC模式的extjs应用程序,在视图中我有一个面板和一个寻呼机,在视图的控制器中,我有视图的所有事件,但我不知道为什么取消选择事件没有激活,所有其他事件都正常激活(选择事件工作正常),为什么这个事件有问题 我有以下代码: 观点: Ext.define('app.view.ViewResultados', { extend: 'Ext.window.Window', alias: 'widget.viewResultados', id: 'viewVentanaResultado', h

我有一个MVC模式的extjs应用程序,在视图中我有一个面板和一个寻呼机,在视图的控制器中,我有视图的所有事件,但我不知道为什么取消选择事件没有激活,所有其他事件都正常激活(选择事件工作正常),为什么这个事件有问题

我有以下代码:

观点:

Ext.define('app.view.ViewResultados', {
extend: 'Ext.window.Window',
alias: 'widget.viewResultados',
id: 'viewVentanaResultado',
height: 295,
width: 690,
layout: 'fit',
collapsible: true,
constrain: true,
resizable: true,
closeAction: 'hide',
initComponent: function() {

    var paginador = Ext.create('Ext.PagingToolbar', {
       // store: dataStore,
        id:this.id+'_paginador',
        displayInfo: true,
        displayMsg: 'Mostrando resultados {0} - {1} de {2}',
        emptyMsg: "No hay resultados para mostrar",
        items:['-',],
        pageSize: 10, 
        action: 'paginador',
        resizable: false,
        height: 50,
    });

    var grid = Ext.create('Ext.grid.Panel', {
        id: this.id+"_tabla",
        alternateClassName: 'Ext.grid.Column',
        sortable: true,
        selModel: Ext.create('Ext.selection.CheckboxModel'),
        action: 'tabla',
        bbar: paginador
    });

    Ext.apply(this, {

        items: [grid],
        buttons: [
            {
                text:'Borrar selección',
                action: 'borrar'
            }]
    });
    this.callParent(arguments);
}
});
控制员:

Ext.define('app.controller.ControlResultados', {
extend: 'Ext.app.Controller',
views : ['ViewResultados'],

init: function() {
    this.control({
        'viewResultados button[action=borrar]': {  
            click: this.borrar
        },
        'viewResultados button[action=exportar_xls]': {  
            click: this.exportar_xls
        }, 
        'viewResultados button[action=reporte]': {  
            click: this.reporte
        }, 
        'viewResultados grid[action=tabla]': {  
            select: this.seleccionRegistros,

        },
        'viewResultados':{
            close: this.cerrar
        },
        '#resultados_tabla':{
            deselect: this.test
        }
    });
},
borrar: function (b, e, eOpts){

},
exportar_xls: function (b, e, eOpts){

},
reporte: function (b, e, eOpts){

}, 
seleccionRegistros: function(grilla, record, index, eOpts){
    console.log("ACCESS SELECT EVENT");
},
eliminarSeleccion :function(grilla, record, index, eOpts){

},

adicionarFeatureSeleccionado : function(registro){
    var ventana = Ext.getCmp('resultados_tabla');
    console.log(ventana);
}, 

removerFeatureSeleccionado: function(registro){
    console.log(registro.data["id_interno"]);
},

acercamientoSeleccion: function() { 

},
abrirVentana: function(titulo, resultados){

}, 
cargarCapaConsulta: function(listadoDatos){

},

construirTablaResultado: function(listadoDatos, geom,idConsulta,  idElemento, tipo){

},
construirColumnas_DataStore: function(objeto,geom, tipo,idElemento ){           

},

acercamientoSeleccion: function() {     

}, 

acercamientoSeleccionCompleta: function() {

},

contiene: function(a, obj) {

},
buscarcapa: function(id){

},
cerrar: function(){

},
test: function(){
    console.log("FUNCION!");
}
});

我用这个解决了mi问题:

Ext.define('Ext.overrides.selection.CheckboxModel', {
override: 'Ext.selection.CheckboxModel',
compatibility: '5.1.0',
privates: {
    selectWithEventMulti: function(record, e, isSelected) {
        var me = this;

        if (!e.shiftKey && !e.ctrlKey && e.getTarget(me.checkSelector)) {
            if (isSelected) {
                me.doDeselect(record); // Second param here is suppress event, not "keep selection"
            } else {
                me.doSelect(record, true);
            }
        } else {
            me.callParent([record, e, isSelected]);
        }
    }
}
});