Extjs floating Panel 挡住 提示框或确认框的解决方法

在弹窗代码的后面紧跟一句:
Ext.MessageBox.getDialog().getEl().setStyle('z-index', '80000');
即可。
如:
Ext.Msg.alert('提示', '根节点不能删除!');
Ext.MessageBox.getDialog().getEl().setStyle('z-index', '80000');


Ext.MessageBox.confirm("删除确认", '删除前将保存部门树组织结构,是否要保存部门树并删除"' + node.text + '" 及其下子部门?', function(button, text) {                                        
                                            if (button == "yes") {
                                               
                                            }
                                        });
Ext.MessageBox.getDialog().getEl().setStyle('z-index', '80000');

上面的方案很繁琐,每一个弹出对象都要设置一次 z-index ,
另一种解决方案是把panel的 floating 属性去掉,保留draggable,panel建好后设置 position样式, 这样就不会出现漂浮面板遮挡弹出窗的问题。如:
    var p = new Ext.Panel({
        title: '菜单管理',
        x: 5,
        y: 5,
        renderTo: Ext.getBody(),
        //floating: true,
        frame: true,
        width: 400,
        height: 500,
        //autoHeight: true,
        buttonAlign: 'center',
        layout: 'fit',
        draggable: {
            insertProxy: false,
            onDrag: function(e) {
                var pel = this.proxy.getEl();
                this.x = pel.getLeft(true);
                this.y = 5; //pel.getTop(true);   //仅移动X轴
                var s = this.panel.getEl().shadow; //移动阴影
                if (s) {
                    s.realign(this.x, this.y, pel.getWidth(), pel.getHeight());
                }
            },
            endDrag: function(e) {
                this.panel.setPosition(this.x, this.y);
            }
        },
        buttons: [{
            text: '保存',
            handler: function() {
                var data = new MenuInfo();
                createMenuInfo(menutree.root, data);
                Ext.Ajax.request({
                    url: 'MenuAction.ashx',
                    method: 'post',
                    params: {
                        action: 'save',
                        data: data.data
                    },
                    success: function(response, opts) {
                        if (response.responseText == '1') {
                            Ext.Msg.alert('提示', "保存成功!");
                            menutree.root.reload();
                            menutree.expandAll();
                        } else {
                            Ext.Msg.alert('提示', "保存失败!");
                        }
                    },
                    failure: function() { Ext.Msg.alert('提示', "保存失败!"); }
                });
            }
        }, {
            text: '刷新',
            handler: function() {
                menutree.root.reload();
                menutree.expandAll();
            }
}],
            html: "<div id='div_menuTree'></div>"
        });
        //设置为绝对位置,使面板能漂移
         p.getEl().setStyle('position', 'absolute');

你可能感兴趣的:(function,layout,action,ExtJs,div,button)