• ExtJS - UI组件 - MessageBox


    更新记录
    转载请注明出处:https://www.cnblogs.com/cqpanda/p/16587505.html
    2022年8月17日 发布。
    2022年8月13日 从笔记迁移到博客。

    ExtJS教程汇总:https://www.cnblogs.com/cqpanda/p/16328016.html

    MessageBox说明

    Message Box常用于显示文本说明
    使用Ext.window.MessageBox类实现,可以使用快捷方式Ext.MessageBox
    Ext.Msg是Ext.window.MessageBox类的预定义的单例实例
    注意:ExtJS中的消息框不会阻塞代码运行,如果需要阻塞可以使用回调函数

    常用消息框类型

    Alert(警告框):
    Displays a standard read-only message box with an OK button.
    Confirm(确认框):
    Displays a confirmation message box with Yes and No buttons.
    Confirm message box displays message with Yes and No buttons
    You can also capture users click event for further process.
    Prompt(文本输入框):
    Displays a message box with OK and Cancel buttons prompting the user to enter some text (similar to JavaScript's prompt). It can be a single-line or multi-line textbox.
    Custom(自定义):
    Customized message box style.

    语法

    提示框(Alert)

    提示框(Alert)

    Ext.Msg.alert('标题', '内容');

    注意:因为MessageBox是单例的,如果同时显示多个消息框将显示最后一个

    Ext.Msg.alert('Title', 'Basic message box in ExtJS');

    还可以自己实例化MessageBox类

    1. var msg = Ext.create('Ext.window.MessageBox');
    2. msg.alert('Status', 'This is Ext JS message box.');

    实例:点击按钮显示提示框(Alert)

    1. Ext.create('Ext.button.Button',{
    2. text: '点击我',
    3. renderTo: Ext.getBody(),
    4. listeners: {
    5. click: function() {
    6. Ext.Msg.alert('标题', '这是MessageBox的内容');
    7. }
    8. }
    9. });

    确认选择(Confirm)

    确认选择(Confirm)

    Ext.MessageBox.confirm('标题', '内容', optional callbackFunction());

    或者

    1. Ext.Msg.confirm("Confirmation", "Do you want to Save changes?", function(btnText){
    2. if(btnText === "no"){
    3. Ext.Msg.alert("Alert", "You have confirmed 'No'.");
    4. }
    5. else if(btnText === "yes"){
    6. Ext.Msg.alert("Alert", "You have confirmed 'Yes'.");
    7. }
    8. }, this);

    点按钮显示确认框(Confirm)

    1. Ext.create('Ext.button.Button',{
    2. text: '点击我',
    3. renderTo: Ext.getBody(),
    4. listeners: {
    5. click: function() {
    6. Ext.MessageBox.confirm('确认',"内容说明", function(btn){
    7. if(btn === 'yes')
    8. {
    9. console.log('选择了确定Yes');
    10. }
    11. else
    12. {
    13. console.log('选择了确定No');
    14. }
    15. });
    16. }
    17. }
    18. });

    显示选择框

    1. Ext.Msg.confirm('Confirm', 'Are you want to updates?',
    2. function (button) {
    3. if ('yes' == button) {
    4. console.log('yes')
    5. } else {
    6. console.log('no')
    7. }
    8. }
    9. );

    输入框(Prompt)

    填写内容(单行)(Prompt)

    1. Ext.Msg.prompt('标题', '说明', function(button,userInputContext){
    2. console.log(button); //用户点击的按钮
    3. console.log(userInputContext) //用户输入的内容
    4. });

    实例:

    1. Ext.Msg.prompt("Ext JS Tutorials", "Please enter your Sencha Id:", function(btnText, sInput){
    2. if(btnText === 'ok'){
    3. Ext.Msg.alert("Status", "You entered:" + sInput);
    4. }
    5. }, this);

    显示用户输入框(单行)

    1. Ext.Msg.prompt('标题', '说明', function(button,userInputContext){
    2. console.log(button); //用户点击的按钮
    3. console.log(userInputContext); //用户输入的内容
    4. });

    显示用户输入框(多行)

    1. Ext.MessageBox.show ({
    2. title: '标题',
    3. msg: '请输入内容:',
    4. width: 300,
    5. buttons: Ext.MessageBox.OKCANCEL,
    6. multiline: true,
    7. //fn: callbackFunction
    8. });

    等待进度框(Wait)

    格式

    Ext.MessageBox.wait({});

    实例:创建一个等待进度条

    Ext.MessageBox.wait('内容', '标题');

    实例:更多配置参数

    1. Ext.Msg.wait('内容', '标题', {
    2. interval: 400, //循环定时的间隔
    3. duration: 2000,//总时长
    4. increment: 5, //执行进度条的次数
    5. text: '更新中,请稍后...', //进度条上的文字
    6. scope: this, //作用域
    7. animate: true, //加入动画
    8. fn: function () { //执行完成后执行的函数
    9. console.log(123);
    10. }
    11. });

    消息框-自定义消息框

    格式

    1. Ext.MessageBox.show ({
    2. title: '标题',
    3. msg: '提示语:',
    4. width: 300,
    5. buttons: Ext.MessageBox.OKCANCEL,
    6. multiline: true, // this property is for multiline user input.
    7. fn: callbackFunction,
    8. icon: Ext.Msg.QUESTION
    9. });

    Buttons属性表示要显示的按钮,可取值:

    1. Ext.MessageBox.OK
    2. Ext.MessageBox.CANCEL
    3. Ext.MessageBox.OKCANCEL
    4. Ext.MessageBox.YESNO
    5. Ext.MessageBox.YESNOCANCEL

    buttonText属性用于设置自定义按钮显示的文本:

    1. buttonText:
    2. {
    3. yes : '保存',
    4. no : '不保存',
    5. cancel : '取消'
    6. }

    icon属性用于设置显示的图标

    1. Ext.MessageBox.QUESTION
    2. Ext.MessageBox.WARNING
    3. Ext.MessageBox.ERROR
    4. Ext.MessageBox.INFO

    实例:显示一个退出提示框

    1. Ext.Msg.show({
    2. title : '保存',
    3. msg : '是否将修改保存到系统中?',
    4. width : 300,
    5. closable : false,
    6. buttons : Ext.Msg.YESNOCANCEL,
    7. buttonText :
    8. {
    9. yes : '保存',
    10. no : '不保存',
    11. cancel : '取消'
    12. },
    13. multiline : false,
    14. fn : function(buttonValue, inputText, showConfig){
    15. Ext.Msg.alert('Status', buttonValue);
    16. },
    17. icon : Ext.Msg.QUESTION
    18. });

    实例:Yes NO Cancel三选

    1. Ext.MessageBox.show ({
    2. title: '标题',
    3. msg: '请输入内容:',
    4. width: 300,
    5. buttons: Ext.MessageBox.YESNOCANCEL,
    6. multiline: true,
    7. fn:function(btn,text){
    8. console.log(btn);
    9. console.log(text);
    10. }
    11. });

    实例:设置提示图标

    1. Ext.MessageBox.show({
    2. title:'Save Changes?',
    3. msg: 'Do you want to save the file?',
    4. buttons: Ext.MessageBox.YESNO,
    5. fn: function(button){
    6. if('yes'==button)
    7. {
    8. }
    9. else if('no'==button)
    10. {
    11. }
    12. } ,
    13. icon: Ext.MessageBox.QUESTION
    14. });

    实例:简单消息框

    1. Ext.MessageBox.show({
    2. title: 'Save Changes?',
    3. msg: 'Do you want to save the file?',
    4. buttons: Ext.MessageBox.YESNO,
    5. fn: function (button) {
    6. if ('yes' == button) {
    7. } else if ('no' == button) {}
    8. },
    9. icon: Ext.MessageBox.QUESTION
    10. });

    实例:消息框内放置进度条

    使用progress属性开启进度条
    使用progressText属性设置进度条的文本
    使用.updateProgress方法更新进度条

    1. //显示进度条
    2. var progressMessage = Ext.MessageBox.show({
    3. title: '加载中',
    4. msg: 'Panda Messagebox',
    5. progress: true,
    6. progressText: '进度条中的文本',
    7. width: 300,
    8. closable: true
    9. });
    10. //更新进度条
    11. var step = 1;
    12. function updateProgress(){
    13. if(step >= 100)
    14. {
    15. progressMessage.updateProgress(100,'完成!');
    16. progressMessage.hide();
    17. }
    18. else
    19. {
    20. progressMessage.updateProgress(step++/100,'加载中... ' + step + '%');
    21. }
    22. Ext.defer(updateProgress, 10);
    23. }
    24. Ext.defer(updateProgress, 10);
  • 相关阅读:
    十五、Lua 协同程序(coroutine)的学习
    当“黑客”遇到电脑初学者.....看完笑死我了
    RT-Thread 原子操作(学习)
    vue3---watch侦听器总结太到位了!
    网络重要知识点
    从0开始制作微信小程序
    linux驱动注册注销中断处理函数
    maven jar依赖地址
    VUE2与VUE3之间的主要区别
    【MySql】6- 实践篇(四)
  • 原文地址:https://blog.csdn.net/weixin_38304160/article/details/126377644