Foro

visualizar ocultar fieldset segun elección de combobox

0
Hola. Quisiera que apareciese o desapareciese un grupo de campos o un fieldset, según la selección de un combobox.
0
primero debes accesar al fieldset de alguna manera y esto dependerá de como tengas estructurado tu codigo, por ejemplo si usas la forma que propone el ExtDesigner basta con que le asignes la propiedad ref al fieldset de tal forma que puedas accesarlo asi: this.my_fieldset; le asignas un listener al combo, por ejemplo: this.my_combo.on('select', function(cmb, record, index){ //aqui obtienes el valor de tu combo //ya sea por cmb.getValue(); o cmb.getRawValue(); //o lo buscas en el store de tu combo a traves de los record //record.get(`campo del valor a buscar`); //y le asignas al fieldset su visibilidad this.my_fieldset.setVisible(true); o false //dependiendo del valor buscado }); también puedes accesar aunque no es recomendable por temas de rendimiento puedes asignarle una propiedad id:my_fieldset por ejemplo y acezando al componente como Ext.get('my_fieldset').setVisible(true); espero te sirva (^_^) pd: como consejo SIEMPRE agrega algo de tu código para ayudarnos a ayudarte
0
Muchas gracias Tokkaido. Me sirve lo que me has indicado.
0
Hola Tokkaido, otra vez. Te pongo el fieldset como lo tengo: var fieldsetContainerTarifa = { xtype : 'container', layout : 'hbox', height : 120, width : 200, layoutConfig: { align : 'stretch' }, items : [ fieldsetTarifa1, fieldsetTarifa2 ] }; Es un container que tiene a su vez dos fieldset, el que quiero que se visualice o no, es el fieldsetContainerTarifa. Gracias por tu tiempo.
0
agregale a tu fieldsetContainerTarifa lo sigte: id:'container_tarifa', e imagino que tu combo ha de ser algo así como : var combo = { xtype: 'combo', bla, bla, listeners: { 'select': function(cmb, record, index){ //aqui buscas el valor en tu récord valor = record.get('lo que sea'); Ext.get('container_tarifa').setVisible(valor); } } }
0
Ok. Tus comentarios me han resuelto el problema. Muchas gracias. Tokkaido
0
El caso es que cuando cargo un fieldset, de entrada no quiero que se visualice, luego con el combo ya hago setVisible(true), no sé si es la propiedad visible:false, pero no funciona porque sí se visualiza de entrada. Te pongo el código a ver si le echas un vistazo: var fieldsetContactoEmpresa = { xtype : 'fieldset', id : 'fieldsetCE', title : 'Persona de contacto', labelWidth : 105, visible : false, width : 1000, items : [ { xtype : 'textfield', fieldLabel : 'Nombre', id : 'nombreContacto', width : 100, maxLength : 200 }, { xtype : 'textfield', fieldLabel : 'Telefono contacto', width : 150, maxLength : 30 } ] };
0
la propiedad es hidden:true la API es tu amiga (^_^)
0
Ok, gracias
0
Hola de nuevo, me ocurre que con un tabpanel, le pongo la propiedad hidden a true pero el tabpanel se visualiza igualmente. Lo que quiero es que no aparezca al principio.
0
la propiedad existe para los panel y tabpanel, prueba si en tu código vuelves a mostrarlo en alguna parte, lo otro que puedes probar es colocar un listener al tabpanel y colocarlo invisible con Ext.get("mytabpanel").setVisible(false);

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