zoukankan      html  css  js  c++  java
  • 第五章、窗口及对话框

    第五章、窗口及对话框


    5 .1  、窗口基本应用


    ExtJS 中窗口是由 Ext.Window 类定义,该类继承自 Panel ,因此窗口其实是一种特殊 的
    面板 Panel 。窗口包含了浮动、可拖动、可关闭、最大化、最小化等特性。看下面的代码:

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

    页面中的 html 内容:

    <input id="btn" type="button" name="add" value=" 新窗口 " />

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

    5.2、窗口分组


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

    看下面的代码:
    var i=0,mygroup;
    function newWin()
    {
    var win=new Ext.Window({title:" 窗口 "+i++,
    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 代码
    <input id="btn" type="button" name="add" value=" 新窗口 " />
    <input id="btnToBack" type="button" name="add" value=" 放到后台 " />
    <input id="btnHide" type="button" name="add" value=" 隐藏所有 " />

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

    5.3  、对话框


    由于传 统使用 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 页面中的内容:
    <input id="btnAlert" type="button" value="alert 框 " />

    执行程序,点击上面的 “ alert 框 ” 按钮,将会在页面上显示如下图所示的对话框。

    除了 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 内容:
    <input id=" 对话框 " type="button" value="btn" />

    点击对话框按钮将会出现下面的对话框,然后选择 yes 或 no 则会用传统的提示框输出
    回调函数中 button 及 text 参数的内容。

    因此,在实际的应用中,上面的代码可以改成如下的内容:
    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 页面:
    <input id="btn" type="button" value=" 对话框 " />

    点击上面的 “ 对话框 ” 按钮可以显示如下图所示的内容,如果点击 OK 按钮则会输入你 输
    入的文本内容,选择 cancel 按钮则会提示放弃了录入,如下图所示:

    在实际应用中,可以直接使用 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 、 canc el
    三个按钮,可以在回调函数 save 中根据点击的按钮执行相应的操作,如图 xx 所示。


  • 相关阅读:
    POJ3253Fence Repair(优先队列或单调队列)
    POJ3630Phone List(字典树)
    HDU1896Stones(优先队列)
    POJ3468 A Simple Problem with Integers(线段树延时标记)
    HDU3535AreYouBusy(分组背包)
    C++ 学习涨姿势汇总
    [C++] std::vector 使用
    Cocos2dx-3.2 引擎学习(四)之CCScheduler
    Cocos2dx-3.2 引擎学习(三)之AssetsManager
    Cocos2dx-3.2 引擎学习(二)之Director
  • 原文地址:https://www.cnblogs.com/liu2008hz/p/1862665.html
Copyright © 2011-2022 走看看