Extjs弹窗控件——Ext.MessageBox

Extjs弹窗控件——Ext.MessageBox首先,浏览器自带的弹窗有alert、confirm、prompt等。js弹窗的3种方式:alert、confirm、prompt鉴于其外观丑陋以及配置不方便,我们常采用Extjs自带的弹窗控件。//

大家好,又见面了,我是你们的朋友全栈君。

首先,浏览器自带的弹窗有alert、confirm、prompt等。js弹窗的3种方式:alert、confirm、prompt

鉴于其外观丑陋以及配置不方便,我们常采用Extjs自带的弹窗控件。

// 基本的alert:
Ext.Msg.alert('Status', 'Changes saved successfully.');

// 用户对话框,用一个回调函数处理结果:
Ext.Msg.prompt('Name', 'Please enter your name:', function(btn, text){
    if (btn == 'ok'){
        // 处理文本值,然后关闭...
    }
});

// 使用配置选项显示一个对话框:
Ext.Msg.show({
   title:'Save Changes?',
   msg: 'You are closing a tab that has unsaved changes. Would you like to save your changes?',
   buttons: Ext.Msg.YESNOCANCEL,
   fn: processResult,
   animEl: 'elId',
   icon: Ext.MessageBox.QUESTION
});

————————————- 以上转载自API文档  ——————————————- 

弹窗默认按钮文本的都是ok、cancel、yes、no等中文,如需自定义按钮文字,可以这么做:

 Ext.MessageBox.buttonText.ok = “确定”;
 Ext.MessageBox.buttonText.cancel = “取消”;

即调用buttonText这个属性下的属性,支持的属性有ok、cancel、yes、no

另外记一下使用案例:

     Ext.getCmp("interviewOrderDetailGrid").selModel.selectAll();
                    Ext.MessageBox.buttonText.ok = "确定";
                    Ext.MessageBox.buttonText.cancel = "取消";
                    Ext.MessageBox.prompt('', '请填写订购批次的名称:', function (btn,text) {
                        if(btn == "cancel") {
                            Ext.getCmp("interviewOrderDetailGrid").selModel.clearSelections();
                        } else if (btn == "ok") {
                            if (text.match(/^[ ]*$/)){
                                alert("批次名称不能为空,请重新订购");
                                Ext.getCmp("interviewOrderDetailGrid").selModel.clearSelections();
                            } else {
                                var orderGroup = Ext.getCmp("interviewOrderListCardList").items.items[0].cardValue;
                                var params = {
                                    SERVICE_ID:[25, 20, 1012], 
                                    orderGroup:orderGroup,
                                    orderGroupName:text
                                };
                                var url = "";
                                var type = "";
                                var tmpFn = function(data){
                                    var result = JSON.parse(data);
                                    if(result.success){
                                        alert("订单提交成功!\n"+Ext.encode(result.data.detailMap)+"\n"+result.data.note);
                                        Ext.getCmp("interviewMenuOrderSearchPanelSureBtn").el.dom.click();                         
                                    }else{
                                        alert(result.data.msgs[0].message);
                                    }
                                };
                                Ext.jquery.getData(params,url,type,tmpFn);
                            } 
                        }
                    });

—————————————————– 2017.2.13 更新  —————————————————-

1、Ext.MessageBox

//Ext.MessageBox为我们提供的 alert/confirm/prompt 等完全可以代替浏览器原生 

Ext.MessageBox.alert()

  Ext.MessageBox.alert(‘标题’,’内容’,function(btn){

      //参数一:窗口的标题;

      //参数二:窗口的内容;

      //参数三:回调函数;

      alert(‘你刚刚点击了’+btn);

  });


2、Ext.MessageBox.confirm()

 //confirm为用户提供了 Yes和No, 它们会在需要用户作出判断时用到

  Ext.MessageBox.confirm(‘选择框’,’你要选择yes还是no?’,function(btn){

      alert(‘你刚刚点击了’+btn);

  });

 //用户选择Yes或No之后,回调函数即被调用,btn参数的值可能是yes或no,通过得到的值就可以知道用户点击了哪个按钮;


 3、Ext.MessageBox.prompt()

 //prompt允许用户输入一段字符串,然后提交给JS处理;

 //prompt还提供了两个按钮,用户可以决定是否将输入的内容提交;

  Ext.MessageBox.prompt(‘输入框’,’你输入帐号’,function(btn,text){

       alert(‘你刚刚点击了’+btn+’,你刚刚输入了’+text);

   });

  //回调函数参数一:代表用户点击的按钮;

  //回调函数参数二:用户输入的字符;


4、对话框的更多配置–show()

 可以输入多行的输入框

 Ext.MessageBox.show({

      title:’多行输入框’,       //对话框标题;

      msg:’你可以输入好几行’,   //对话框显示的提示内容;

      width:300,

      buttons:Ext.MessageBox.OKCANCEL,  //对话框的按钮,Ext.MessageBox已预置;

      multiline:true,           //允许多行;

      fn:function(btn,text){    //回调函数;

          alert(‘你刚刚点击了’+btn+’,你刚刚输入了’+text);

      }

  });


5、自定义对话框的按钮

 Ext.MessageBox.show({

     …

     buttons:Ext.MessageBox.YESNOCANCEL,

     //Ext.MessageBox预置的yes/cancle按钮;

     …

   });


6、进度条

 //Ext.MessagesBox提供了默认的进度条;

  Ext.MessageBox.show({

    title:’请等待’,

    msg:’读取数据中’,

    width:240,

    progress:true,        //显示进度条参数;

    closable:false        //隐藏右上角的关闭按钮;

  });

  var f = function(v){

    return function(){

      if(v == 11){

         Ext.MessageBox.hide();

      }else{

          Ext.MessageBox.updateProgress(v/10,’正在读取第’+v+’个,一共10个’);

          //updateProgress()函数让进度条状态发生变化;

       }

     };

   };

  for(var i=1; i<12; i++){

    setTimeout(f(i),i*1000); 

     //定时器;10秒之后进度条将隐藏;

   }

  //也可以直接使用progress函数↓↓↓↓↓

  Ext.MessageBox.progress(‘请等待’,msg:’读取数据中’);

  自动变化的进度条提示框

  Ext.MessageBox.wait(‘请等待’,msg:’读取数据中’);


 7、动画效果

  //使用animEl:为对话框设置弹出和关闭的动画效果;

 //对话框会依据指定的HTML元素播放弹出和关闭的动画;

  Ext.MessageBox.show({

     …

     animEl:’dialog’

    //对应动画是基于id=’dialog’的元素;

  });

 

//Ext.MessageBox =Ext.Msg

 //Ext.Msg弹出的对话框都是基于同一个内部Ext.Window实例;因此不能同时使用Ext.MessageBox弹出多个对话框;页面只会显示最后一个窗口; 

以上转自:深入浅出ExtJS 第七章 弹出窗口

——————————————- 2017.2.24 更新  —————————————– 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155647.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and

    org.postgresql.util.PSQLException: Connection to localhost:5432 refused. Check that the hostname and项目启动报错org.postgresql.util.PSQLException:Connectiontolocalhost:5432refused.CheckthatthehostnameandportarecorrectandthatthepostmasterisacceptingTCP/IPconnections.解决:swin+R打开命令框…

    2022年6月19日
    39
  • 双击pycharm没反应_pycharm为啥运行不了

    双击pycharm没反应_pycharm为啥运行不了PYCHARM双击无反应初识python和深度学习,按网上教程安装好anaconda和pycharm后,发现anacondanavigator,pycharm以及anaconda里装好的jupyternotebook都启动不了。。。只能通过.bat打开最后还是网上大神nb,成功解决了我的问题,下面是我看到的三种解决方法1.重置winsock(未解决我的问题)以管理员身份打开cmd输入命令netshwinsockreset重启电脑2.修改pycharm64.exe.vmoption

    2022年8月27日
    5
  • 你还在用命令看日志?用这款可视化工具简直太方便了!

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 作者:废物大师兄 cnblogs.com/cjsblog/p/9476813.html Kibana是一个开源的分析…

    2021年6月28日
    133
  • Java面向对象三大特性学习总结

    Java面向对象三大特性学习总结面向对象的三大特性:封装、继承、多态将对象的属性和实现细节隐藏起来,不让外部程序直接进行访问,将属性私有化,仅对外公开接口,让外部程序通过类提供的方法来对隐藏信息进行访问和操作。好处是外部程序只能通过类规定的方法对数据进行访问,避免外界程序对类内部属性进行破坏。

    2022年7月25日
    8
  • MySQL-索引;视图「建议收藏」

    MySQL-索引;视图「建议收藏」一、索引MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。如:我们通过汉字字典查找汉字有两种方式(1)一页一页挨着找,直到找到为止,这种查找方式属于全字典扫描(2)通过汉语字典的目录页(索引),按拼音、笔画、偏旁部首等排序的目录(索引)缩小查找范围快速查找到需要的字select*fromt_userwherename=’zhangsan’;如果name字段上没有添加索引(目录),或者说没有给name字段创建索引,MySQL会

    2022年7月22日
    12
  • windows下载android源码

    windows下载android源码windows下载android源码的方法http://blog.csdn.net/freekiteyu/article/details/70939672

    2022年7月15日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号