[Extjs] 显示隐藏表单项
2019-05-21 本文已影响0人
w_w_wei
表单里面有很多输入项,
有时候需要根据前面的选项,
来显示不同的输入项,
{
fieldLabel:tr('界面主题'),
labelStyle: 'padding-left:30',
xtype:'checkboxgroup',
id: 'mouldtype',
items:[
.......
]
}
根据门户类别来隐藏和显示界面主题。
- 默认不显示
#添加属性
{
fieldLabel:tr('界面主题'),
labelStyle: 'padding-left:30',
xtype:'checkboxgroup',
id: 'mouldtype',
hidden: true,
hideLabel: true,
items:[
.......
]
}
- 动态设置
Ext.getCmp('mouldtype').getEl().up('.x-form-item').setDisplayed(isTheme);
因为最外层class
是.x-form-item
, 通up
函数,找到对应元素,得到的是一个Ext.Element
通过函数setDisplayed
来设置元素的display
样式。
Ext.Element
还有 hide()
和 show()
方法,不过hide
隐藏后,高度不会变化。
另外附加踩过的坑
直接调用组件的函数,只能隐藏选择框。
Ext.getCmp('mouldtype').hide()
还需要隐藏`label`
Ext.getCmp('mouldtype').label.hide()
单纯隐藏`label`,高度不会变化,还需要设置高度
Ext.getCmp('mouldtype').label.setHeight(0)
这样还会留下部分空间。