我有一个带有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 :(得分:0)
我用这个解决了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]);
}
}
}
});