最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ASP.NET实现进度条效果

来源:动视网 责编:小采 时间:2020-11-27 22:35:41
文档

ASP.NET实现进度条效果

ASP.NET实现进度条效果:我们先看下进度条效果 我点击了按钮后他会显示进度页面,进度完成后,进度条消失,其实也是比较简单的了。 我们需要一个进度条代码文件ProgressBar.htm(注意:是没有head这些标签的) <script language=javascript> functi
推荐度:
导读ASP.NET实现进度条效果:我们先看下进度条效果 我点击了按钮后他会显示进度页面,进度完成后,进度条消失,其实也是比较简单的了。 我们需要一个进度条代码文件ProgressBar.htm(注意:是没有head这些标签的) <script language=javascript> functi


我们先看下进度条效果

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

我们需要一个进度条代码文件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>
<div id="ProgressBarSide" style="position: absolute; height: 21px; width: 100px;
 color: Silver; border-width: 1px; border-style: Solid; display: block">
 <div id="ProgressBar" style="position: absolute; height: 21px; width: 0%; background-color: #1475BB">
 </div>
 <div id="ProgressText" style="position: absolute; height: 21px; width: 100%; text-align: center">
 </div>
 <div id="ProgressTitle" style="position: absolute; height: 21px; top: 21px; width: 100%;
 text-align: center">
 </div>
</div>

然后需要一个进度条类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实现进度条效果

ASP.NET实现进度条效果:我们先看下进度条效果 我点击了按钮后他会显示进度页面,进度完成后,进度条消失,其实也是比较简单的了。 我们需要一个进度条代码文件ProgressBar.htm(注意:是没有head这些标签的) <script language=javascript> functi
推荐度:
标签: 进度条 实现 效果
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top