Egy*_*din 8 extjs modal-dialog extjs4
像微软OS中的窗口(xp,vista,7等)......
如果主窗口创建模态窗口,则用户无法访问主窗口
(包括关闭和访问工具栏等).
我想用extjs做一个类似的.这是我的模态示例:
Ext.create("Ext.Window", {
title: 'aa',
width: 200,
height: 150,
html: 'a',
tbar: [{
text: 'aa',
handler: function() {
Ext.create("Ext.Window", {
title: 'aa',
width: 150,
closable: false,
height: 100,
html: 'b',
ownerCt: this,
modal: true
}).show();
}
}]
}).show();
Run Code Online (Sandbox Code Playgroud)
问题是,它只是禁用主窗口的主体,用户仍然可以访问主工具栏,也可以关闭它.
我的问题是如何制作完整的模态?或者如果无法完成,如何禁用主窗口,如果出现模态窗口,我在模态获胜时使用了监听器显示,但问题是我无法从该监听器访问主窗口.
编辑:
到目前为止这是我的代码:
Ext.create("Ext.Window", {
title: 'aa',
width: 200,
height: 150,
html: 'a',
maskOnDisable: false,
tbar: [{
text: 'aa',
handler: function(a) {
var parent = a.up("window");
parent.disable();
Ext.create("Ext.Window", {
title: 'aa',
width: 150,
height: 100,
html: 'b',
listeners: {
scope: this,
"close": function() {
parent.enable();
},
/*
"blur" : function(){
this.focus()
}
*/
}
}).show();
}
}]
}).show();
Run Code Online (Sandbox Code Playgroud)
虽然这不是模态概念,但它看起来像我现在想要的,我有新问题,maskOnDisable
不起作用,我需要一个事件blur
,所以如果用户点击父窗口,它会重新回到弹出窗口.(我应该把它作为新问题发布吗?)
emo*_*aus 23
这些天你设置modal:true
Ext.define('myApp.view.MyModalWindow', {
extend: 'Ext.window.Window',
...
modal: true,
...
Run Code Online (Sandbox Code Playgroud)
新答案:
你是否尝试过disable()
和enable()
适当的父窗口?我认为这应该可以帮助您停止访问第一个窗口,同时允许您的用户访问主应用程序菜单和屏幕.这是我尝试过的:
var x = Ext.create("Ext.Window",{
title : 'aa',
width : 200,
height: 150,
html : 'a',
tbar : [{
text : 'aa' ,
handler :function(){
// I disable the parent window.
x.disable();
Ext.create("Ext.Window",{
title : 'aa',
width : 150,
closable : false,
height: 100,
html : 'b'
// You will need to enable the parent window in close handler of this window.
}).show();
}
}]
}).show();
Run Code Online (Sandbox Code Playgroud)
禁用窗口时,窗口中的组件将被禁用,您甚至无法移动窗口.但与此同时,您可以访问其他组件,例如主菜单,页面上的网格.您还可以访问新窗口.现在,为了使其行为类似于模态,您需要在关闭子窗口时启用父窗口.您可以使用该enable()
方法.
我想不出任何其他方式来实现你正在寻找的东西.
旧答案:
我想知道你为什么设置ownerCt
属性指向窗口本身!那是你的主要问题.通过删除属性,您将实现您正在寻找的.这是更新的代码:
Ext.create("Ext.Window",{
title : 'Extra window!',
width : 150,
height: 100,
closable : false,
html : 'A window that is a modal!',
modal : true
}).show();
Run Code Online (Sandbox Code Playgroud)
设置ownerCt
房产有什么理由吗?