首页后端开发ASP.NETASP.NET如何实现进度条效果的实例讲解

ASP.NET如何实现进度条效果的实例讲解

时间2024-01-30 16:03:02发布访客分类ASP.NET浏览390
导读:收集整理的这篇文章主要介绍了ASP.NET如何实现进度条效果的实例讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了ASP.NET实现简单的进度条效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下我们先看...
收集整理的这篇文章主要介绍了ASP.NET如何实现进度条效果的实例讲解,觉得挺不错的,现在分享给大家,也给大家做个参考。这篇文章主要为大家详细介绍了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();
    }
    

怎么样,是不是很简单呢。

以上就是ASP.NET如何实现进度条效果的实例讲解的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

ASP.NET效果

若转载请注明出处: ASP.NET如何实现进度条效果的实例讲解
本文地址: https://pptw.com/jishu/592735.html
Asp.Net--详解Core的安装和介绍 快速带你搭建并配置好Node.js环境

游客 回复需填写必要信息