这篇文章主要为大家详细介绍了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. .net验证后台页面是否登录实例教程
  2. ASP.NET Core Razor页面路由的详细介绍
  3. 用XML和XSL来生成动态页面
  4. XML创建可排序、分页的数据显示页面
  5. 使用xmldom在服务器端生成静态html页面
  6. 浅谈WEB页面工具语言XML(一)产生背景
  7. 浅谈WEB页面工具语言XML(三)支持工具
  8. 浅谈WEB页面工具语言XML(四)应用分类
  9. 浅谈WEB页面工具语言XML(六)展望

随机推荐

  1. 如何上传应用软件到 Android Market集市
  2. 浅谈android应用的版本更新
  3. Android面试系列文章2018之Android部分之
  4. Android中AsyncTask的简单用法及实现网络
  5. Android之分享篇(配图适合新人):腾讯分享(QQ
  6. Android P 图形显示系统(九) Android图形显
  7. android之调用webservice 实现图片上传
  8. Android内核开发:源码的版本与分支详解
  9. Android中View.setPressed是怎么出现按压
  10. Google:Android 2.3在所有Android系统设备