1 问题描述
ComboBox在FormPanel里面初始化的时候设置隐藏 注意hidden :true 属性,这样ComboBox在FormPanel加载后隐藏了,但是问题是他的fieldLabel 还是显示出来。
{ id:'moidfyForm_combo', xtype:'combo', fieldLabel : '协议类型', valueField : "id", hidden :true, displayField : "value", forceSelection : true, allowBlank : false, typeAhead : true, // 自动将第一个搜索到的选项补全输入() mode : 'local', hiddenName : 'updatetypeName2', name : 'updatetypeName2', triggerAction : 'all', store : new Ext.data.SimpleStore( { fields : ['id', 'value'], data : updatetypeName_data }) }
效果图如下:
这样就不能达到预期隐藏的效果。2 解决方法
1. 在上述代码中在增加一个属性 hideLabel:true , 显示效果(个人觉的这个方法不是很好,后面如果控制在显示,好像没方法显示fieldLabel)
2.在ComboBox 增加监听事件,来修改显示和隐藏fieldLabel以及ComboBox 控件
写了2个按钮测试 代码
handler : function(){ var obj= moidfyForm.findById("moidfyForm_combo"); if(obj){ obj.getEl().up('.x-form-item').setDisplayed(false); } }
实现fieldLabel隐藏,当然如果显示隐藏ComboBox用 hide() 和show()方法实现具体不介绍了
点击显示隐藏按钮显示效果
点击 显示按钮 显示效果 最后的测试代码,见附件,大家可以下载下来参考一下
Ext.form.Checkbox和Ext.form.Radio示例