zoukankan      html  css  js  c++  java
  • Extjs4 关于设置form中所有子控件为readOnly属性的解决方案

    之前在网上找了一堆,但那些确实没法用,后来考虑了一下,发现主要是网上提供的假设form中只有一层控件,没有考虑到布局稍微复杂的form情形,此处采用递归的形式实现对form中所有控件(grid及button必须排除,否则会报错,如果发现还有其它控件也会报错,请反馈给我,好完善此代码)

    代码很简单,setFormReadOnly需要两个参数,一个为form,一个为bool型变量,标明是需要给form整体加上readOnly属性或是去除此属性.

    由于setReadOnly只是将控件置为只读或非只读,不能改变控件颜色,达不到让用户一眼看出是否为只读的效果,所以在此用setFieldStyle使得设置为只读的控件置灰.

    setFormReadOnly为程序入口,里面有一个内嵌函数SetitemsReadOnly,此函数为递归函数,只要发现其本身属性items不为空,则会递归调用自身,通过这样的方式实现所有子控件都设置为readonly.

    另外,程序中有一个stateId属性判断,此判断用于在将readOnly的控件恢复正常时作一个过滤,凡是其stateId为readOnly的,一律略过,保持其readOnly属性,不进行恢复

    setFormReadOnly = function(form, readOnly) {
        setItemsReadOnly = function(items, readOnly) {
            items.each(function(item) {
                        var childitems = item.items;
                        if (!Ext.isEmpty(childitems, false)) {
                            setItemsReadOnly(childitems, readOnly);
                        } else {
                            if (item.xtype != "button" && (item.xtype != "gridview")) {
                                if(!Ext.isEmpty(item.stateId) && (item.stateId == "readOnly")){
                                    return ;
                                }
                                item.setReadOnly(readOnly);
                                if (readOnly) {
                                    item.setFieldStyle("background:#E6E6E6");
                                } else {
                                    item.setFieldStyle("background:#FFFFFF");
                                }
                            }
                        }
                    });
        }
        setItemsReadOnly(form.items, readOnly);
    }
  • 相关阅读:
    ubuntu16.04上安装深度学习环境
    QQ音乐付费音乐下载的demo
    python列表按比例或长度拆分
    docker 使用gpu启动及tf限额
    python apscheduler was missed by
    k8s中使用gpu的部署方案
    从字符串中找出最大的数字串,字符串中可以带小数点。--python实现
    linux中批量删除带空格的文件
    tornado中使用python3原生事件循环asyncio
    mysql DATE_FORMAT FROM_UNIXTIME 的区别
  • 原文地址:https://www.cnblogs.com/luhouxiang/p/4547032.html
Copyright © 2011-2022 走看看