Problema con el llenado de un formulario y combos sincroniza
Hola buen día, trataré de explicarme lo mejor que pueda.
Tengo un grid, con un toolbar, en ella hay un botón que abre una ventana y carga un formulario extjs.
Pongo el código de esta parte:
//Esta parte es sólo el botón del toolbar
tbar:[ { id : 'tb_detail', text : 'Nueva Inscripción', tooltip : 'Detalle del registro', iconCls : 'detail', scope : this, handler : function(){ this.loadProcess({ url : '/uimqroo/codigos/alumnos/captura_administrador.php' }) } },'-',//Aqui está la función
if (this.grid.getSelectionModel().getSelections().length == 1 ){ var params = new Object(); params.url = o.url; params.width = 800; params.height = 600; app.showMainWin(params); }else{ Ext.MessageBox.alert('Error','Debes de seleccionar un registro'); }Al abrirse la ventana lleno todos los objetos del combo, sin embargo el problema que estoy teniendo son en unos combos sincronizados, ya que para llenarlos debo quitar la propiedad ID, sin embargo en ellos tengo agregado un listener que cuando se seleccione un elemento se recargue el store. Para seleccionar los combos dependientes la instrucción que uso, usa la propiedad ID. Los combos sincronizados son: País, Estado, Municipio, Localidad. Si cambia país, limpio los otros tres combos y recargo el store de Estado, Si cambia Estado, limpio los otros dos y recargo el Store de Municipio, y Si cambio Municipio, limpio localidad y Recargo su Store. Primero pondré la definición del combo países:
xtype: 'combo', fieldLabel: 'País', anchor: '100%', name : 'id_pais_nac', //id : 'id_pais_nac', hiddenName : 'id_pais_nac', store : storePaises, displayField : 'd_pais', valueField : 'id_pais', triggerAction : 'all', emptyText : 'Seleccione el paÃs de Nac. del alumno...', selectOnFocus : true, allowBlank : true, helpText : 'País de Nacimiento del Alumno', editable : false, listeners : { 'select': function(cmb, rec, idx){ var comboMuninicipio =Ext.getCmp('id_municipio_nac'); var comboLocalidad =Ext.getCmp('id_localidad_nac'); comboMuninicipio.clearValue(); comboMuninicipio.disable(); comboLocalidad.clearValue(); comboLocalidad.disable(); //Validación para ver si es Mexico el pais seleccionado var cadena = this.getValue(); var vector = cadena.split('*'); if(vector['1']=='MX'){//Mexico comboEstado.enable(); } } } }Para el llenado si el combo tiene habilitada la propiedad ID no se llena, tons lo que hago es quitársela, sin embargo si se lo quito, la parte del listener deja de funcionar. Al parecer la instrucción [b]Ext.getCmp[/b] hace uso de la propiedad ID //Aqui pongo el código para cuando lleno los combos al abrirse la página. Sólo pondré el de países, aunque los otros tres los hago igual
var storePaises=new Ext.data.JsonStore({ url:ruta+'ajax_cbo_paises.php', root: 'rows', totalProperty: 'total', fields: [ {name:'id_pais', type: 'string', mapping:'id_pais'}, {name:'d_pais', type: 'string', mapping: 'd_pais'}, ] }); storePaises.on('load',function(store){ this.Base.getForm().findField("id_pais_nac").setValue(loadedGrid.grid.getSelectionModel().getSelected().get('id_pais_nac')); this.Base.getForm().findField("id_pais").setValue(loadedGrid.grid.getSelectionModel().getSelected().get('id_pais')); //alert(loadedGrid.grid.getSelectionModel().getSelected().get('id_pais_nac')); },this); storePaises.load();Cómo puedo resolver este problema? Saludos y Gracias de antemano
¿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.