Foro

cancelar selección de combobox

0
Hola, tengo entendido que para cancelar la selección de un combo debo ocupar el evento 'beforeselect' y retornarle FALSE, pero no me resulta de la manera que lo estoy haciendo:
listeners : {
	select :  function(c,r){
		idBodega = r.id;
	},
	beforeselect : function(c){
		var i = stDetalle.getCount();
		if (i>0){
			Ext.Msg.show({
				title : '¿Eliminar?',
				buttons : Ext.MessageBox.YESNOCANCEL,
				msg : 'Esta operación eliminará los articulos seleccionados.<br><b/>¿Está seguro de esto?',
				icon : Ext.Msg.WARNING,
				fn : function(btn){
					if (btn == 'no'){
						return false;
					}
				}
			});
		}
	}
}
como se hace entonces? <!-- s:? --><!-- s:? --> caulquier luz será agradecida
0
lo solucioné de esta manera :
listeners : {
	select : function(c,r){
		var i = stDetalle.getCount();
		if (i>0){
			Ext.Msg.show({
				title : '¿Eliminar?',
				buttons : Ext.MessageBox.YESNOCANCEL,
				msg : 'Esta operación eliminará los articulos seleccionados.<br><b/>¿Está seguro de esto?',
				icon : Ext.Msg.WARNING,
				fn : function(btn){
					if (btn == 'yes'){
						stDetalle.removeAll();
						idBodega = r.id;
					}else{
						c.setValue(last); 
					}
				}
			});
		}else{
			idBodega = r.id;
		}
	},
	beforeselect : function(c){
		last = c.getValue();
	}
}
si a alguien se le ocurre otra manera me lo haga saber, plis
0
En el primer post olvidaste que el callback del mensaje se ejecuta hasta que el usuario da click sobre algún botón, en ese momento la ejecución dewl listener habrá terminado y realmente no importará lo que selecciones. Saludos

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.