visualizar ocultar fieldset segun elección de combobox
Hola. Quisiera que apareciese o desapareciese un grupo de campos o un fieldset, según la selección de un combobox.
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
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.
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);
}
}
}
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
}
]
};
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.
¿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.