• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

分享一篇ASP.NET实现进度条的图文实例

c# 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

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

我们先看下进度条效果

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

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

<script language="javascript">  function SetPorgressBar(pos) {    //设置进度条居中    var screenWidth = document.body.offsetWidth;    ProgressBarSide.style.width = Math.round(screenWidth / 2) + "px<strong style="color:transparent">来源gaodai#ma#com搞@代~码$网</strong>";    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();    }

以上就是分享一篇ASP.NET实现进度条的图文实例的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:分享一篇ASP.NET实现进度条的图文实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址