• Extjs 4.1中有关创建Window的若干技术点


    利用Extjs开发web应用程序,会经常用到Extjs.window.Window,在创建的此对象的时候,本人经历了几个波折,最终基本上算是搞清了有关写法的区别,现保存下来,共享给读者,也供自己查阅之用。

    语句1.

    var control = Ext.ComponentManager.create(this.control);

    参数:this.control可以为对象配置参数,也可以是这个对象本身。

    语句2.

    若用Extjs.create方式创建window,如以下代码:

    1 this.setSelfWindow(
    2             Ext.create("DCIS.uploadfiles",{
    3                  500,
    4                 height: 300,
    5                 title: 'File Upload Form'
    6            }));

    那么创建完成后,点击关闭此窗体时,对象并没有销毁,只是其中的dom部分(即protoEl属性为空)被销毁了。在此情况下,若想要再次创建此对象,那么由于此对象以及存在,所以系统会将原来缺少dom的对象重新拿来,但是再次对其dom添加样式时会报错(最通俗的描述就是:一个窗体,第一次打开没问题,第二次打开时会报:【'addCls' 为空或不是对象】错误)。因此,针对这种情况,(目前)有3种解决办法:

    第一种:将window窗体的close事件中修改为:this.hide();即不让系统销毁其dom。

    第二种:添加创建窗体的配置参数closeAction:'hide',原理和第一种方法相同。

    第三种:不直接利用第一、第二种方法创建对象,而是像窗体部分传递参数,由单独的窗体部分的代码创建新对象实例。例如以下代码:

    1 //编辑流程
    2         this.setFlowWindow({
    3             xtype: "flowgrid",
    4             height: 340,
    5              700,
    6             title: "审批流程明细",
    7             columns: 2,
    8             store: this.getBaseInfoStore()
    9         });

    然后,创建处代码可以为:

    1 var control = Ext.ComponentManager.create(this.control);
    2         var result = control.setOperationType("update");
    3         if (result == true) {
    4             control.show();
    5         }

    这样,就可以解决问题。用了一段extjs,感觉这个框架还是很有个性的。O(∩_∩)O~

  • 相关阅读:
    面向对象SOLID原则-设计模式-第2篇
    python 设计模式 开篇 第1篇
    区块链 第1篇 什么是区块链 区块链与比特币的关系 区块链的发展历史 应用领域
    HTTP协议六种请求:GET,HEAD,PUT,DELETE,POST
    python垃圾回收机制
    类的MRO属性 C3算法
    Vue第六篇 element-ui 项目管理工具npm webpack 启Vue项目vue-cli
    《EffctiveJava》泛型
    Kafka总结
    Windows 关闭端口号
  • 原文地址:https://www.cnblogs.com/jizhong/p/2556569.html
Copyright © 2020-2023  润新知