EXT窗口Window及对话框MessageBox


Posted in Javascript onJanuary 27, 2011

看下面的代码:

var i=0; 
function newWin(){ 
var win = new Ext.Window({ 
title:"窗口"+i++, 
width:400, 
height:300, 
maximizable:true 
}); 
win.show(); 
} 
Ext.onReady( 
function(){ 
Ext.get("btn").on("click",newWin); 
} 
);

页面中的html内容:

执行上面的代码,当点击按钮“新窗口”的时候,会在页面中显示一个窗口,窗口标题为“窗口x”,窗口可以关闭,可以最大化,点击最大化按钮会最大化窗口,最大化的窗口可以还原,如图xxx所示。
EXT窗口Window及对话框MessageBox
窗口分组

窗口是分组进行管理的,可以对一组窗口进行操作,默认情况下的窗口都在默认的组 Ext.WindowMgr中。窗口分组由类Ext.WindowGroup定义,该类包括bringToFront、getActive、 hideAll、sendToBack等方法用来对分组中的窗口进行操作。

看下面的代码:

var i=0,mygroup; 
function newWin(){ 
var win=new Ext.Window({ 
title:"窗口"+i++, 
width:400, 
height:300, 
maximizable:true, 
manager:mygroup 
}); 
win.show(); 
} 
function toBack(){ 
mygroup.sendToBack(mygroup.getActive()); 
} 
function hideAll(){ 
mygroup.hideAll(); 
} 
Ext.oReay( 
function(){ 
mygroup=new Ext.WindowGroup(); 
Ext.get("btn").on("click",newWin); 
Ext.get("btnToBack").on("click",toBack); 
Ext.get("btnHide").on("click",hideAll); 
} 
);

页面中的html代码

执行上面的代码,先点击几次“新窗口”按钮,可以在页面中显示几个容器,然后拖动这些窗口,让他们在屏幕中不同的位置。然后点“放到后台”按钮,可以实现把最前面的窗口移动该组窗口的最后面去,点击“隐藏所有”按钮,可以隐藏当前打开的所有窗口。如下图所示:
EXT窗口Window及对话框MessageBox
对话框

由于传统使用alert、confirm等方法产生的对话框非常古板,不好看。因此,ExtJS提供了一套非常漂亮的对话框,可以使用这些对话框代替传统的alert、confirm等,实现华丽的应用程序界面。
Ext的对话框都封装在Ext.MessageBox类,该类还有一个简写形式即Ext.Msg,可以直接通过Ext.MessageBox或Ext.Msg来直接调用相应的对话框方法来显示Ext对话框。看下面的代码:

Ext.onReady( 
function(){ 
Ext.get("btnAlert").on( 
"click", 
function(){ 
Ext.MessageBox.alert("请注意","这是ExtJS的提示框"); 
} 
); 
} 
);

Html页面中的内容:

执行程序,点击上面的“alert框”按钮,将会在页面上显示如下图所示的对话框。
EXT窗口Window及对话框MessageBox
除了alert以外,Ext还包含confirm、prompt、progress、wait等对话框,另外我们可以根据需要显示自下定义的对话框。普通对话框一般包括四个参数,比如confirm的方法签名为confirm ( String title, String msg, [Function fn], [Object scope] ) ,参数title表示对话框的标题,参数msg表示对话框中的提示信息,这两个参数是必须的;可选的参数fn表示当关闭对话框后执行的回调函数,参数 scope表示回调函数的执行作用域。回调函数可以包含两个参数,即button与text,button表示点击的按钮,text表示对话框中有活动输入选项时输入的文本内容。我们可以在回调函数中通过button参数来判断用户作了什么什么选择,可以通过text来读取在对话框中输入的内容。看下面的例子:

Ext.onReady( 
function(){ 
Ext.get("btn").on( 
"click", 
function(){ 
Ext.MessageBox.confirm( 
"请确认","是否真的要删除指定的内容", 
function(button,text){ 
alert(button); 
alert(text); 
} 
); 
} 
); 
} 
);

Html内容:

点击对话框按钮将会出现下面的对话框,然后选择yes或no则会用传统的提示框输出回调函数中button及text参数的内容。
EXT窗口Window及对话框MessageBox
因此,在实际的应用中,上面的代码可以改成如下的内容:

Ext.onReady( 
function(){ 
Ext.get("btnAlert").on( 
"click", 
function(){ 
Ext.MessageBox.confirm( 
"请确认", 
"是否真的要删除指定的内容", 
function(button,text){ 
if(button=="yes"){ 
//执行删除操作 
alert("成功删除"); 
} 
} 
); 
} 
); 
} 
);

这样当用户点击对话框中的yes按钮时,就会执行相应的操作,而选择no则忽略操作。

下面再看看prompt框,我们看下面的代码:

Ext.onReady( 
function(){ 
Ext.get("btn").on( 
"click", 
function(){ 
Ext.MessageBox.prompt( 
"输入提示框", 
"请输入你的新年愿望:", 
function(button,text){ 
if(button=="ok"){ 
alert("你的新年愿望是:"+text); 
} 
else 
alert("你放弃了录入!"); 
} 
); 
} 
); 
} 
);

Html页面:

点击上面的“对话框”按钮可以显示如下图所示的内容,如果点击OK按钮则会输入你输入的文本内容,选择cancel按钮则会提示放弃了录入,如下图所示:
EXT窗口Window及对话框MessageBox EXT窗口Window及对话框MessageBox
在实际应用中,可以直接使用MessageBox的show方法来显示自定义的对话框,如下面的代码:

function save(button){ 
if(button=="yes"){ 
//执行数据保存操作 
} 
else if(button=="no"){ 
//不保存数据 
} 
else{ 
//取消当前操作 
} 
} 
Ext.onReady( 
function(){ 
Ext.get("btn").on( 
"click", 
function(){ 
Ext.Msg.show({ 
title:'保存数据', 
msg: '你已经作了一些数据操作,是否要保存当前内容的修改?', 
buttons: Ext.Msg.YESNOCANCEL, 
fn: save, 
icon: Ext.MessageBox.QUESTION 
}); 
} 
); 
} 
);

点击“对话框”按钮可显示一个自定义的保存数据对话框,对话框中包含yes、no、cancel三个按钮,可以在回调函数save中根据点击的按钮执行相应的操作,如图xx所示。
EXT窗口Window及对话框MessageBox

Javascript 相关文章推荐
JavaScript写的一个DIV 弹出网页对话框
Aug 14 Javascript
input的focus方法使用
Mar 13 Javascript
js toFixed()方法的重写实现精度的统一
Mar 06 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
Mar 13 Javascript
js判断手机访问或者PC的几个例子(常用于手机跳转)
Dec 15 Javascript
vue2.0模拟锚点的实例
Mar 14 Javascript
微信小程序使用wxParse解析html的实现示例
Aug 30 Javascript
jquery+ajax实现上传图片并显示上传进度功能【附php后台接收】
Jun 06 jQuery
JavaScript面试中常考的字符串操作方法大全(包含ES6)
May 10 Javascript
js 动态校验开始结束时间的实现代码
May 25 Javascript
浅谈JS for循环中使用break和continue的区别
Jul 21 Javascript
uin-app+mockjs实现本地数据模拟
Aug 26 Javascript
基于jquery的表头固定的若干方法
Jan 27 #Javascript
jquery animate图片模向滑动示例代码
Jan 26 #Javascript
jQuery 幻灯片插件(带缩略图功能)
Jan 24 #Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 #Javascript
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 #Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
Jan 24 #Javascript
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 #Javascript
You might like
php下使用SimpleXML 处理XML 文件
2010/02/27 PHP
如何使用php脚本给html中引用的js和css路径打上版本号
2015/11/18 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
js为空或不是对象问题的快速解决方法
2013/12/11 Javascript
jquery实现可自动判断位置的弹出层效果代码
2015/10/12 Javascript
详解javascript的变量与标识符
2016/01/04 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
JS与jQuery实现子窗口获取父窗口元素值的方法
2017/04/17 jQuery
js判断用户是输入的地址请求的路径(实例讲解)
2017/07/18 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
前端插件之Bootstrap Dual Listbox使用教程
2019/07/23 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
[37:37]DAC2018 4.4 淘汰赛 Optic vs Mineski 第二场
2018/04/05 DOTA
[47:42]Fnatic vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:01:43]EG vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
python MySQLdb使用教程详解
2018/03/20 Python
python-docx修改已存在的Word文档的表格的字体格式方法
2018/05/08 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
python实现静态web服务器
2019/09/03 Python
python相对企业语言优势在哪
2020/06/12 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
python3爬虫GIL修改多线程实例讲解
2020/11/24 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
美国传奇滑手Paul Rodriguez创办的街头滑板品牌:Primitive Skateboarding
2019/10/29 全球购物
考试保密承诺书
2014/08/30 职场文书
民族学专业职业生涯规划范文:积跬步以至千里
2014/09/11 职场文书
Python基础之教你怎么在M1系统上使用pandas
2021/05/08 Python
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
深入理解pytorch库的dockerfile
2022/06/10 Python