2015-07-13 6 views
0

У меня есть приложение extjs с моделью 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!"); 
} 
}); 

ответ

0

Я решил проблему ми с этим:

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]); 
     } 
    } 
} 
}); 
Смежные вопросы