Foro

Problemas Combo en FormPanel

0
Hola a tod@s! mi problema es el siguiente, tengo una combinación de formpanel con datagrid. En el primero muestro el detalle del registro que he seleccionado en el datagrid. Dicho formulario contiene un par de combox, el problema es que inicialmente cuando cargo la página al no tener seleccionado ningún registro del grid (el formulario está en blanco) si hago click en el combo no me carga sus valores. Sin embargo, si tengo seleccionado un registro todo funciona a la perfección. Les dejo mi código completo por si alguien pudiese echarme una mano. Gracias! init : function() { //CRUD var proxy = new Ext.data.HttpProxy({ api: { read : "serverside/getContacts.php", create : "serverside/createContact.php", update : "serverside/updateContact.php", destroy : "serverside/destroyContact.php" } }); var provincias = new Ext.data.Store({ storeId: 'st_provincias', reader: new Ext.data.JsonReader({ fields: ['idprovincia', 'descprovincia'], root: 'rows'}), proxy: new Ext.data.HttpProxy({ url: 'serverside/getProvincias.php' }), autoLoad:true }); var provincias2 = new Ext.data.Store({ storeId: 'st_provincias2', reader: new Ext.data.JsonReader({ fields: ['idprovincia', 'descprovincia'], root: 'rows'}), proxy: new Ext.data.HttpProxy({ url: 'serverside/getProvincias.php' }), autoLoad:true }); provincias.load(); provincias2.load(); var provin = new Ext.form.ComboBox({ id: 'idprovincia', store: provincias, valueField: 'idprovincia', displayField: 'descprovincia', mode: 'remote', minChars : 0 , maxHeight: 250, autoload:true }); function muestraProvincia(valor) { var comboTipoPregunta = Ext.getCmp(provin); var stx = Ext.StoreMgr.lookup('st_provincias'); var index = stx.find('idprovincia',valor); if(index>-1){ var record = stx.getAt(index); return record.get('descprovincia'); } }; var paises = new Ext.data.Store({ storeId: 'st_paises', reader: new Ext.data.JsonReader({ fields: ['idpais', 'descpais'], root: 'rows'}), proxy: new Ext.data.HttpProxy({ url: 'serverside/getPaises.php' }), autoLoad:true }); paises.load(); var pai = new Ext.form.ComboBox({ id: 'idpais', store: paises, valueField: 'idpais', displayField: 'descpais', mode: 'remote', minChars : 0 , maxHeight: 250, autoload:true }); function muestraPais(valor) { var comboTipoPais = Ext.getCmp(pai); var stx = Ext.StoreMgr.lookup('st_paises'); var index = stx.find('idpais',valor); if(index>-1){ var record = stx.getAt(index); return record.get('descpais'); } }; var reader = new Ext.data.JsonReader({ totalProperty : 'total', successProperty : 'success', messageProperty : 'message', idProperty : 'idcliente', root : 'data' },[ {name: 'idcliente'}, {name: 'codcliente'}, {name: 'desccliente'}, {name: 'cifcliente'}, {name: 'fechaaltacliente'}, {name: 'paiscliente'}, {name: 'provinciacliente'}, {name: 'poblacioncliente'}, {name: 'direccioncliente'}, {name: 'codpostalcliente'}, {name: 'contactocliente'}, {name: 'tlf1cliente'}, {name: 'tlf2cliente'}, {name: 'movilcliente'}, {name: 'faxcliente'}, {name: 'emailcliente'}, {name: 'webcliente'}, ]); var writer = new Ext.data.JsonWriter({ encode : true, writeAllFields : true }); this.store = new Ext.data.Store({ id : "id", proxy : proxy, reader : reader, writer : writer, autoSave : true }); this.store.load(); var searchUsers = new Ext.app.SearchField({ store : this.storeGrid, width: 180, id: 'fieldUsersSearch' }); //form this.form = new Ext.form.FormPanel({ region : "south", layout : "absolute", url : "serverside/updateContact.php", bodyStyle:"background-color:#fff;padding: 10px", margins : "3 3 3 3", bodyPadding: 5, autoScroll:true, height : 200, width: 700, border : true, defaults : {allowBlank: false}, items : [ {xtype:"label", y:10, x:10, text:"Codigo:",style:"font-size:9px;"}, {xtype : "textfield", name : "codcliente",width:60,height:20,x:70,y:6,style:"font-size:9px;"}, {xtype:"label", y:10, x:210, text:"Cliente:",style:"font-size:9px;"}, {xtype : "textfield", name : "desccliente",width:230,height:20,x:270,y:6,style:"font-size:9px;"}, {xtype:"label", y:10, x:560, text:"CIF:",style:"font-size:9px;"}, {xtype : "textfield", name : "cifcliente",width:100,height:20,x:610,y:6,style:"font-size:9px;"}, {xtype:"label", y:40, x:10, text:"Pais:",style:"font-size:9px;"}, {xtype:"combo", store: "st_paises", displayField: "descpais", valueField: "idpais", name : "paiscliente", width:120,height:18,x:70,y:34,style:"font-size:9px;", hiddenName: "paiscliente"}, {xtype:"label", y:40, x:210, text:"Provincia:",style:"font-size:9px;"}, {xtype:"combo", store: "st_provincias2", displayField: "descprovincia", valueField: "idprovincia", name : "provinciacliente", width:230,height:18,x:270,y:34,style:"font-size:9px;", hiddenName: "provinciacliente"}, {xtype:"label", y:40, x:560, text:"C.P.:",style:"font-size:9px;"}, {xtype : "textfield", name : "codpostalcliente",width:100,height:20,x:610,y:34,style:"font-size:9px;"}, {xtype:"label", y:70, x:10, text:"Poblacion:",style:"font-size:9px;"}, {xtype:"textfield", name : "poblacioncliente", width:120,height:18,x:70,y:66,style:"font-size:9px;"}, {xtype:"label", y:70, x:210, text:"Direccion:",style:"font-size:9px;"}, {xtype : "textfield", name : "direccioncliente",width:230,height:20,x:270,y:66,style:"font-size:9px;"}, {xtype:"label", y:70, x:560, text:"Contacto:",style:"font-size:9px;"}, {xtype : "textfield", name : "contactocliente",width:140,height:20,x:610,y:66,style:"font-size:9px;"}, {xtype:"label", y:100, x:10, text:"Telefono(1):",style:"font-size:9px;"}, {xtype:"textfield", name : "tlf1cliente", width:100,height:18,x:70,y:96,style:"font-size:9px;"}, {xtype:"label", y:100, x:210, text:"Telefono(2):",style:"font-size:9px;"}, {xtype : "textfield", name : "tlf2cliente",width:100,height:20,x:270,y:96,style:"font-size:9px;"}, {xtype:"label", y:100, x:560, text:"Fax:",style:"font-size:9px;"}, {xtype : "textfield", name : "faxcliente",width:100,height:20,x:610,y:96,style:"font-size:9px;"}, {xtype:"label", y:130, x:10, text:"Email:",style:"font-size:9px;"}, {xtype:"textfield", name : "emailcliente", width:120,height:18,x:70,y:126,style:"font-size:9px;"}, {xtype:"label", y:130, x:210, text:"Web:",style:"font-size:9px;"}, {xtype : "textfield", name : "webcliente",width:180,height:20,x:270,y:126,style:"font-size:9px;"}, {xtype:"label", y:130, x:560, text:"Movil:",style:"font-size:9px;"}, {xtype : "textfield", name : "movilcliente",width:100,height:20,x:610,y:126,style:"font-size:9px;"}, {xtype : "textfield", name : "idcliente",hidden:true,allowBlank:true} ], fbar : [{text : "Guardar", scope : this, handler: this.onUpdate,iconCls:'save-icon'}, {text : "Añadir Registro", scope : this, handler: this.addContact,iconCls:'add-icon'}], }); var win = new Ext.Window({ title : "eProject - Gestión Clientes", layout : "border", width : 1000, height : 450, x:0, y:10, items : [this.grid, this.form] }); win.show(); this.grid.on("rowClick",this.loadRecord,this); },
0
Pues que al cargar el formulario, cuando aún no se ha seleccionado ninguna fila en el grid, hago click en el combo, este haya cargados sus valores en lugar de estar vacío que es lo que me está pasando ahora.
0
Y cual sería el funcionamiento deseado?

¿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.