Extjs

[Extjs] 显示隐藏表单项

2019-05-21  本文已影响0人  w_w_wei

表单里面有很多输入项,
有时候需要根据前面的选项,
来显示不同的输入项,


{
            fieldLabel:tr('界面主题'),
            labelStyle: 'padding-left:30',
            xtype:'checkboxgroup',
            id: 'mouldtype',
            items:[
                        .......
            ]
}

根据门户类别来隐藏和显示界面主题。

  1. 默认不显示
#添加属性
{
            fieldLabel:tr('界面主题'),
            labelStyle: 'padding-left:30',
            xtype:'checkboxgroup',
            id: 'mouldtype',
            hidden: true,
            hideLabel: true,
            items:[
                        .......
            ]
}
  1. 动态设置
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)

这样还会留下部分空间。
上一篇下一篇

猜你喜欢

热点阅读