EasyUI添加进度条

EasyUI添加进度条

添加进度条重点只有一个,如何合理安排进度刷新与异步调用逻辑,假如我们在javascript代码中通过ajax或者第三方框架dwr等对远程服务进行异步调用,实现进度条就需要做到以下三点:

  • 异步刷新之前打开进度条
  • 异步刷新的过程中不断的刷新进度数据
  • 异步刷新之后关闭进度条

详细代码

代码如下所示:

<div id="a" class="easyui-dialog" title="进度" data-options="modal:true,shadow:false,closable:false,closed:true,onClose:function(){$("#a").dialog('destroy');}" style="width:414px">
    <div id="progressbardemo" class="easyui-progressbar" style="width:400px"></div>
</div>
$('#div').load("/from/webapp/path/to/dialog.html",function(){
    $.parser.parse($(this));
    OpenDialogFunction();
});
//后面是正常的异步处理逻辑,只需要记住在异步调用返回结果成功时,关闭dialog即可

function OpenDialogFunction(){
    var control = $('#a');
    if(!control.length>0){
        //如果控件已经销毁,则退出该方法
        return;
    }
    var htmlobj = $.ajax({
      url:"xxxxxxxxxxx",  //获取进度数据的url
      async: false  //保持异步
    });
    var responseText = htmlobj.responseText;
    var result = eval('(' + responseText + ')');
    if(!result.process_code){
      //该代码用于判断返回的信息有错误时如何处理
      return;
    }
    var processNumber = result.progressNumber;
    if(processNumber == 0){
      control.progressbar('options').text = "用于控制进度条中的文字a";
    }else{
      control.progressbar('options').text = "用于控制进度条中的文字b";
    }
    var currentProgressValue = control.progressbar('getValue');
    if(currentProgressValue < 100){
      control.progressbar('setValue',processNumber);
      setTimeout(arguments.callee,100);  //回调该方法
    }
}

注意重点

  • setTimeout:该方法会间隔一段时间进行调用,具体原理还有待进一步研究。在进度条的实例中主要利用这个方法进行固定时间间隔的回调,刷新进度条的progressValue
  • $(‘#div‘).load("/from/webapp/path/to/dialog.html":使用该形式处理dialog可以有效避免easyUi出现问题,关闭的时候就销毁,打开的时候就重新创建html元素
  • 判断控件是否存在:单纯的判断$(‘#id‘)是否为空是不行的,不论控件是否存在都会返回元素,所以需要使用 control.length>0来判断控件存在

原文地址:https://www.cnblogs.com/mrnx2004/p/10475181.html

时间: 2024-10-10 09:40:45

EasyUI添加进度条的相关文章

QTableView 添加进度条

记录一下QTableView添加进度条 例子很小,仅供学习 使用QItemDelegate做的实现 有自动更新进度 要在.pro文件里添加 CONFIG += c++11 ProgressBarDelegate类 #ifndef PROGRESSBARDELEGATE_H #define PROGRESSBARDELEGATE_H #include <QItemDelegate> class ProgressBarDelegate : public QItemDelegate { Q_OBJE

电力项目七--运行监控中添加进度条

<%@ page language="java" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s" %> <!-- 添加标签,然后做栈顶获取数据 --> <html> <head> <title>运行监控模块编辑</title> <link href="

MFC 任务栏添加进度条

1.在框架类中添加成员变量CProgressCtrl  m_progress; 2.在框架类OnCreate函数后面添加 CRect rect; //创建CRect对象 m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(IDS_PROGRESS),&rect); //获得一个指定索引的指示器的矩形区域 m_progress.Create(PBS_SMOOTH|WS_CHILD|WS_VISIBLE,rect,&m_wndSta

电力项目十二--运行监控中添加进度条

应用场景: 1.文件上传.下载(IO流); 2.数据的导入导出: 3.大批量数据的增删改查: 4.远程数据的访问. 添加函数loading(); <%@ page language="java" pageEncoding="UTF-8"%> <%@taglib uri="/struts-tags" prefix="s" %> <!-- 添加标签,然后做栈顶获取数据 --> <html&

easyui制作进度条案例demo

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>fe</title> <link rel="stylesheet" type="text/css" href="easyui/easyui.css"> <link rel="stylesheet" t

DevExpress GridControl 单元格添加进度条(ProgressBar)

首先可以使用DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所以的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. 那么就要自己手动的编写代码来完成了. 1 : 绘制一个单元格进度条 形状   当进度小于50%时显示为红色. 1 public void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) 2 {

在DevExpress GridControl中添加进度条控件 z

首先可以使用 DevExpress GridControl 自带的进度条控件. 但是我要用一个方法来设置所有的单元格进度,而不是每个单元格都要设置一遍,同时我想要根据进度值不同,进度条显示不同的颜色. 那么就要自己手动的编写代码来完成了. 1 .绘制一个单元格进度条形状,当进度小于50%时显示为红色. public void DrawProgressBar(DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { string

easyui在table单元格中添加进度条

function XR_jd(alue, rowData, rowIndex){ var value; ...... var htmlstr = '<div class="easyui-progressbar progressbar" style="width: 100%; height: 20px;" value="' + value + '" text="' + value + '%">' + '<div

EasyUI - Progressbar 进度条控件

效果: html代码: <div id="p" style="width:400px;"></div> JS代码: $(function () { $('#p').progressbar({ value: 60 }); })