• Ext JS 二级弹框问题


    二级弹框示例代码demo

    doSecondWin:function(){
    	var xxxSecondWindow=this.lookupReference('xxxSecondWindow');
    	if (!xxxSecondWindow) {
    		xxxSecondWindow=Ext.create('*.*.xxxSecondWindow', {
    			reference: 'xxxSecondWindow',
    			param1: '传参',
    			title: '弹框2显示名称',
    		});
    		this.getView().add(xxxSecondWindow);
    		// 方案二处理方式一添加代码位置
    	}
    	// 方案二处理方式二调整代码位置
    	xxxSecondWindow.show();
    }
    

    1.最佳方案:通过一级弹框的toolbar按钮的handler对应的方法进行触发

    tbar : Ext.create('Ext.toolbar.Toolbar', {
    	cls: 'tbar_class',
    	items: [{
    		bind: {
    			text: '{insert}'
    		},
    		xtype: 'button',
    		iconCls: 'iconfont icon-system_add1',
    		handler: 'doSecondWin'
    	}]
    }),
    

    2.方案二:通过二级弹框的列表的超链接

    columns:[{...,render:function(){
    	return '<div onclick="viewport.XXXController.doSecondWin()">超链接</div>';
    }}]
    

    方案二存在问题:二级弹框显示在一级弹框下面 #F44336
    2.1.问题处理方式一:获取二级弹框中form中的输入框元素,延时进行聚焦,会让二级弹框刷新到上面

    var secondForm=this.lookupReference('xxxSecondForm').getForm();
    setTimeout(function () {
    	secondForm.findField('inputElement').focus();
    }, 50);
    

    2.2.问题处理方式二:二级弹框调用show()方法时进行传参,可以根据传参元素进行弹出二级弹框的特效显示

    var firstWindowButton=me.lookupReference('xxxFirstWindow').down("button[handler='doSecondWin']");
    xxxSecondWindow.show(firstWindowButton);
    

    终极最佳方案:

    var zi = new Ext.ZIndexManager();
    zi.register(alertWin);
    zi.bringToFront(alertWin, true);
    
  • 相关阅读:
    【转】Odoo开发之:工作流 workflow
    【转】Odoo:基本字段类型
    【转】odoo 10的企业微信发送程序介绍
    Installing python-ldap in Ubuntu
    Odoo8中安装新模块找不到的问题
    mybatis缓存
    ThreadPoolExecutor线程池进阶使用
    使用Dubbo实现RPC调用
    java静态代理模式
    java四种线程池
  • 原文地址:https://www.cnblogs.com/chonghaojie/p/14422604.html
Copyright © 2020-2023  润新知