Ext中同时隐藏field和label的方法

Ext中同时隐藏field和label的方法


       有时根据业务需要将组件进行隐藏,但往往实现后只是将文本框这类组件隐藏了,组件前面的label还在并没有隐藏。为此查询实验很多方法都没有成功,直到看到这篇文章,解决了问题,故对此问题进行总结。


参考实例:

function hideField(field)
    {
       field.disable();// for validation
       field.hide();
       field.getEl().up('.x-form-item').setDisplayed(false); // hide label

    }


    function showField(field)
    {
       field.enable();
       field.show();
       field.getEl().up('.x-form-item').setDisplayed(true);// show label

    }
        this.userTypeField=new Ext.ux.EnumField({
                hiddenName:'userinfo.userType',
                fieldLabel:'用户类型',
                tableName:'userinfo',
                fieldName:'userType',
                allowBlank : false,
                listeners:{
                        select:function(){
                                var value = this.getValue();
                                //Ext.log(value);
                                if(value == '2')
                                {
                                        //formPanel.stationidField.setVisible(false); //这种方法只能隐藏field而不能隐藏field                                             //formPanel.hospitalidField.setVisible(true);   对应的label,用下面的方法则可以一起隐藏.
                                        
                                        hideField(formPanel.stationidField);
                                        showField(formPanel.hospitalidField);
                                }
                                if(value == '3')
                                {
                                        //formPanel.hospitalidField.setVisible(false);
                                        //formPanel.stationidField.setVisible(true);
                                        hideField(formPanel.hospitalidField);                
                                        showField(formPanel.stationidField);                        
                                }
                                if(value == '1' || value == '4')
                                {
                                        //formPanel.hospitalidField.setVisible(true);
                                        //formPanel.stationidField.setVisible(true);                                        
                                        showField(formPanel.hospitalidField);
                                        showField(formPanel.stationidField);
                                }
                        }
                }
        });


说明:

注意红色部分代码:

第一个红色部分代码是隐藏组件的逻辑,包括label和文本框。

第二个红色部分代码是显示隐藏的组件逻辑,包括label和文本框。

其中对于field也就是formPanel.hospitalidField,换个写法是:

projectInfoForm.getForm().findField('swgcl').disable();
projectInfoForm.getForm().findField('swgcl').hide();
projectInfoForm.getForm().findField('swgcl').getEl().up('.x-form-item').setDisplayed(false);

两者是一样的。



转载自:http://scnujie.iteye.com/blog/210215


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值