这篇文章主要为大家详细介绍了ASP.NET实现简单的进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

我们先看下进度条效果

我点击了按钮后他会显示进度页面,进度完成后,进度条消失,其实也是比较简单的了。

我们需要一个进度条代码文件ProgressBar.htm(注意:是没有head这些标签的)

<script language="javascript">  function SetPorgressBar(pos) {    //设置进度条居中    var screenWidth = document.body.offsetWidth;    ProgressBarSide.style.width = Math.round(screenWidth / 2) + "px";    ProgressBarSide.style.left = Math.round(screenWidth / 4) + "px";    ProgressBarSide.style.top = "50px";    ProgressBarSide.style.height = "21px";    ProgressBarSide.style.display = "block";    //设置进度条百分比     ProgressBar.style.width = pos + "%";    ProgressText.innerHTML = pos + "%";  }  function SetMaxValue(maxValue) {    ProgressBarSide.style.width = maxValue + "px";  }  //完成后隐藏进度条  function SetCompleted() {    ProgressBarSide.style.display = "none";  }  function SetTitle(title) {    ProgressTitle.innerHTML = title;  }</script><p id="ProgressBarSide" style="position: absolute; height: 21px; width: 100px;  color: Silver; border-width: 1px; border-style: Solid; display: block">  <p id="ProgressBar" style="position: absolute; height: 21px; width: 0%; background-color: #1475BB">  </p>  <p id="ProgressText" style="position: absolute; height: 21px; width: 100%; text-align: center">  </p>  <p id="ProgressTitle" style="position: absolute; height: 21px; top: 21px; width: 100%;    text-align: center">  </p></p>

然后需要一个进度条类ProgressBar.cs


using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.IO;namespace ZhuoYueE.Dop.Web.UI{  /// <summary>  ///显示进度条  /// </summary>  public class ProgressBar : System.Web.UI.Page  {    /// <summary>    /// 最大值    /// </summary>    private int MaxValue    {      get      {        if (ViewState["MaxValue"] == null)        {          return 0;        }        else        {          return Convert.ToInt32(ViewState["MaxValue"]);        }      }      set      {        ViewState["MaxValue"] = value;      }    }    /// <summary>    /// 当前值    /// </summary>    private int ThisValue    {      get      {        if (ViewState["ThisValue"] == null)        {          return 0;        }        else        {          return Convert.ToInt32(ViewState["ThisValue"]);        }      }      set      {        ViewState["ThisValue"] = value;      }    }    /// <summary>    /// 当前页面    /// </summary>    System.Web.UI.Page m_page;    /// <summary>    /// 功能描述:构造函数    /// 作  者:huangzh    /// 创建日期:2016-05-06 11:54:34    /// 任务编号:    /// </summary>    /// <param name="page">当前页面</param>    public ProgressBar(System.Web.UI.Page page)    {      m_page = page;    }    public void SetMaxValue(int intMaxValue)    {      MaxValue = intMaxValue;    }    /// <summary>    /// 功能描述:初始化进度条    /// 作  者:huangzh    /// 创建日期:2016-05-06 11:55:26    /// 任务编号:    /// </summary>    public void InitProgress()    {      //根据ProgressBar.htm显示进度条界面      string templateFileName = AppDomain.CurrentDomain.BaseDirectory + "ProgressBar.htm";      StreamReader reader = new StreamReader(@templateFileName, System.Text.Encoding.GetEncoding("GB2312"));      string strhtml = reader.ReadToEnd();      reader.Close();      m_page.Response.Write(strhtml);      m_page.Response.Flush();    }    /// <summary>    /// 功能描述:设置标题    /// 作  者:huangzh    /// 创建日期:2016-05-06 11:55:36    /// 任务编号:    /// </summary>    /// <param name="strTitle">strTitle</param>    public void SetTitle(string strTitle)    {      string strjsBlock = "<script>SetTitle('" + strTitle + "'); </script>";      m_page.Response.Write(strjsBlock);      m_page.Response.Flush();    }    /// <summary>    /// 功能描述:设置进度    /// 作  者:huangzh    /// 创建日期:2016-05-06 11:55:45    /// 任务编号:    /// </summary>    /// <param name="percent">percent</param>    public void AddProgress(int intpercent)    {      ThisValue = ThisValue + intpercent;      double dblstep = ((double)ThisValue / (double)MaxValue) * 100;      string strjsBlock = "<script>SetPorgressBar('" + dblstep.ToString("0.00") + "'); </script>";      m_page.Response.Write(strjsBlock);      m_page.Response.Flush();    }    public void DisponseProgress()    {      string strjsBlock = "<script>SetCompleted();</script>";      m_page.Response.Write(strjsBlock);      m_page.Response.Flush();    }  }}

然后就是调用方法了,调用很简单,在页面的按钮事件或者其他什么地方加入代码,如在按钮事件里这么用

protected void btnImport_Click(object sender, EventArgs e)    {      ProgressBar pb = new ProgressBar(this);      pb.SetMaxValue(110);      pb.InitProgress();      pb.SetTitle("这是一个测试数据");      for (int i = 1; i <= 110; i++)      {        pb.AddProgress(1);        //此处用线程休眠代替实际的操作,如加载数据等        System.Threading.Thread.Sleep(50);      }      pb.DisponseProgress();    }

更多相关文章

  1. Asp.NET页面事件加载的顺序是什么样的
  2. .net验证后台页面是否登录实例教程
  3. ASP.NET Core Razor页面路由的详细介绍
  4. 用XML和XSL来生成动态页面
  5. XML创建可排序、分页的数据显示页面
  6. 使用xmldom在服务器端生成静态html页面
  7. 浅谈WEB页面工具语言XML(一)产生背景
  8. 浅谈WEB页面工具语言XML(三)支持工具
  9. 浅谈WEB页面工具语言XML(四)应用分类

随机推荐

  1. bootstrap-select js jQuery控制select属
  2. jquery对json数据进行增删改查的例子
  3. jQuery跨域调用Web API
  4. 模拟JQuery的Ready方法实现并出现的问题
  5. 基于jQuery实现页面搜索功能----项目实战
  6. 每个循环中的ajax执行不正确
  7. jQuery:在焦点上接收两个`focusin`事件
  8. 为什么jQuery的电子邮件验证regex如此简
  9. 只对css类进行动画处理,没有显式样式
  10. 关于jquery点击之后,标签的hover失效这个