Extjs 如何在Ext4中创建完整的模式窗口?
就像微软操作系统(xp、vista、7等)中的一个窗口 如果主窗口创建模式窗口,则用户无法访问主窗口,Extjs 如何在Ext4中创建完整的模式窗口?,extjs,modal-dialog,extjs4,Extjs,Modal Dialog,Extjs4,就像微软操作系统(xp、vista、7等)中的一个窗口 如果主窗口创建模式窗口,则用户无法访问主窗口, (包括关闭和访问工具栏等) 我想用extjs做一个类似的。这是我的模态示例: Ext.create(“Ext.Window”{ 标题:"aa",, 宽度:200, 身高:150, html:'a', 待定:[{ 正文:“aa”, 处理程序:函数(){ Ext.create(“Ext.Window”{ 标题:"aa",, 宽度:150, 可关闭:错误, 身高:100, html:'b', 所有者
(包括关闭和访问工具栏等) 我想用extjs做一个类似的。这是我的模态示例:
Ext.create(“Ext.Window”{
标题:"aa",,
宽度:200,
身高:150,
html:'a',
待定:[{
正文:“aa”,
处理程序:函数(){
Ext.create(“Ext.Window”{
标题:"aa",,
宽度:150,
可关闭:错误,
身高:100,
html:'b',
所有者:这个,
莫代尔:对
}).show();
}
}]
}).show();
问题是,它只是禁用了主窗口的主体,用户仍然可以访问主工具栏,也可以关闭它
我的问题是如何制作完整的模态?或者,如果无法完成,如何禁用主窗口,如果出现模式窗口,我已经在模式win上使用listener show,但问题是我无法从该侦听器访问主窗口
编辑:
这是我目前的代码:
Ext.create(“Ext.Window”{
标题:"aa",,
宽度:200,
身高:150,
html:'a',
马斯康:错,
待定:[{
正文:“aa”,
处理程序:函数(a){
var父项=a.up(“窗口”);
parent.disable();
Ext.create(“Ext.Window”{
标题:"aa",,
宽度:150,
身高:100,
html:'b',
听众:{
范围:本,,
“关闭”:函数(){
parent.enable();
},
/*
“模糊”:函数(){
这个.focus()
}
*/
}
}).show();
}
}]
}).show();
虽然这不是模态概念,但看起来像我现在想要的,我有一个新问题,maskOnDisable
不起作用,我需要一个类似blur
的事件,所以如果用户单击父窗口,它会聚焦回弹出窗口。
(我应该把它作为新问题发布吗?新答案:
您是否尝试过适当地禁用()
和启用()
父窗口?我认为这将有助于您停止访问第一个窗口,同时允许您的用户访问主应用程序菜单和屏幕。以下是我尝试过的:
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();
禁用窗口时,窗口中的组件将被禁用,您甚至无法移动窗口。但同时,您将可以访问其他组件,如主菜单和页面上的网格。您还可以访问新窗口。现在,要使其行为类似于模态,需要在关闭子窗口时启用父窗口。您可以使用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();
设置
ownerCt
属性有什么原因吗?现在您设置了model:true
Ext.define('myApp.view.MyModalWindow', {
extend: 'Ext.window.Window',
...
modal: true,
...
不不是那样的,。。我的问题不清楚吗???我有一个主窗口。。然后用户单击工具栏按钮。。它会弹出一个新窗口。。我希望用户无法访问主窗口。。所以我需要
ownerCt
来指定谁是家长。。就像“资源管理器”(窗口)中的“文件夹选项”,在关闭文件夹选项之前,用户无法访问资源管理器。请查看更新的答案。@Abdel,谢谢您的帮助。。见我的编辑。。我再次需要一些帮助..是的,模态配置属性是一种方式:)Docu: