zoukankan      html  css  js  c++  java
  • 实用ExtJS教程100例-003:进度条对话框Ext.MessageBox.progress

    在这篇文章中,我们将演示如何在对话框中使用进度条。

    进度条对话框

    我们可以使用下面的代码来在MessageBox中显示一个进度条:

    Ext.get("btn4").on("click", function () {
        Ext.MessageBox.progress("进度", "正在处理,请稍候...", "0%");
    });

    在上面的代码中,我们使用Ext.MessageBox.progress方法显示一个带有进度条的对话框,这个方法有三个参数:

    • 第一个参数是标题
    • 第二个参数是内容
    • 第三个参数是进度条显示的文字

    运行代码可以看到如下界面

    image

    让进度条动起来

    上面的代码只是在MessageBox中显示了一个进度条,并没有为进度条更新进度,接下来我们来更新进度状态,让进度条能够动起来。

    var updateProgress = function (progress) {
        if (progress >= 1) {
            Ext.MessageBox.updateProgress(1, "处理完成");
            return;
        }
    
        Ext.MessageBox.updateProgress(progress, Math.round(progress * 100) + "%");
        Ext.defer(function () {
            updateProgress(progress + 0.1);
        }, 500);
    }

    在段代码中,我首先定义了一个updateProgress的方法,在这个方法中,判断如果参数progress大于等于1,说明已经完成了,那么调用Ext.MessageBox.updateProgress方法来更新进度。

    Ext.MessageBox.updateProgress方法接收两个参数:

    • 第一个参数为进度数值,值的范围在0到1之间。
    • 第二个参数为进度条显示的文字

    在updateProgress方法中,我使用了Ext.defer方法来执行定时的操作。

    Ext.defer 有两个参数:

    • 第一个参数为定时完成以后执行的方法
    • 第二个参数为时间长度

    我在定时代码中执行了updateProgress方法本身,在进度上加0.1,用来继续更新进度。

    我们在创建进度条对话框的时候调用这个方法:

    Ext.get("btn4").on("click", function () {
        Ext.MessageBox.progress("进度", "正在处理,请稍候...", "0%");
        updateProgress(0);
    });

    程序运行后的截图如下

    image

    当进度完成以后:

    image

    关闭进度条对话框

    在进度执行完成以后,我们可以使用下面的代码来关闭ExtJS 进度条对话框:

    Ext.MessageBox.close();

    如果觉得这样太突然,可以使用上面的defer方法做一个简单的延时:

    Ext.defer(function () { Ext.MessageBox.close(); }, 200);

    在200毫秒之后,进度条对话框将关闭。

     

  • 相关阅读:
    【BIEE】清除缓存
    【BIEE】安装好BIEE后,修改默认登录页面不为QuickStart页面
    【BIRT】修改BIRT的背景颜色
    【Oracle】查看死锁与解除死锁
    【Oracle】查看正在运行的存储过程
    【Oracle】表空间相关集合
    【Oracle】Oracle常用语句集合
    MapWindowPoints
    模拟鼠标操作
    SVN MERGE 方法(原创)
  • 原文地址:https://www.cnblogs.com/youring2/p/extjs-100-examples-003-messagebox-with-progressbar.html
Copyright © 2011-2022 走看看