asp.net的一个简单进度条功能(代码片段)

心所欲 心所欲     2022-12-25     234

关键词:

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>
<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%;  padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">>
    </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();
        
 

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

progressbar实现事件发生和结束的进度(c#,asp.net,html,js)

我想在html里面实现一个进度条,这个进度条默认是隐藏的,当某个事件开始时,进度条被触发,而这个事件有开始和结束时间,开始和结束间隔刚好就是进度条的总长度(当然,这个事件时间间隔是变动的,所以进度条长度也... 查看详情

[layui]上传文件带进度条+表单提交功能优化(代码片段)

上传文件带进度条+表单提交功能优化前期做了一个简视频提交;每次只提交一个需要重新上传。视频文件较大时候没有进度提示,用户体验并不好,今天做一个简单的优化!如果监听提交表单时候,回调路径可能还未完成。提... 查看详情

获取 ASP.NET GridView 单元格值并在 JQuery 进度条中显示

...ogressBar【发布时间】:2012-04-0507:58:16【问题描述】:我有一个从SQLServer数据库填充的ASP.NETGridView。这工作正常。我后面的代码使用的是C#。GridView中的一列包含一个JQuery进度条,另一列包含许多响应。请 查看详情

(68)c#里怎么样提供一个有窗口显示进度条的拷贝目录的功能(代码片段)

(68)C#里怎么样提供一个有窗口显示进度条的拷贝目录的功能在C#里开发,常常会遇到拷贝大目录的文件,比如很多LOG日志,运行时间久了,需要把它们备份起来,那么就需要拷贝这些文件,这时候就会比较久,如果不显示一个... 查看详情

[python]实现文本进度条(代码片段)

...完成的部分(**)和未完成的部分(…)的两种字符,以及一个跟随完成度前进的小箭头,风格如下:%10[*****->....................................]由于程序执行速度远超过人眼的视觉停留时间,直接进行字符输出几乎是瞬间完成&#... 查看详情

cssreactjs的简单进度条(代码片段)

查看详情

unity简单的进度条实现(代码片段)

制作进度条所需的资源:用以载入进度条显示的场景进度条背景以及进度条本身(颜色区别)展示百分制进度情况的Text文本需要载入的场景(这里使用的是自带场景)载入时的场景布局:要将Load的ImageType修改为Filled,FillMethod修... 查看详情

如何通过 ASP.NET MVC 上传文件并显示进度条?

...文件并将其上传到服务器。如果可能的话,我有兴趣添加一个进度条来显示已上传了多少文件。有人有类似的例子吗?我应该使用jQuery来执行此操作吗?【问题讨论】 查看详情

实现winfrom进度条及进度信息提示,winfrom程序假死处理(代码片段)

...容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。第一步:设计界面,注意需要引用usingSystem.Threading; 查看详情

linux基础实现一个简单的进度条(代码片段)

文章目录一、预备知识二、简单的倒计时三、实现一、预备知识换行和回车的区别\\r:回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖,如果之前的内容比... 查看详情

asp.net上传大文件带进度条swfupload

Asp.Net基于swfupload上传大文件带进度条百分比显示,漂亮大气上档次,大文件无压力,先看效果一、上传效果图1、上传前界面:图片不喜欢可以自己换2、上传中界面:百分比显示 3、上传后返回文件地址,我测试呢所以乱写... 查看详情

第七章文本进度条的实现(代码片段)

...2、进度条需要能在一行中逐渐变化问题分析:如何获取一个文本进度条的变化时间呢?1、采用sleep()模拟一个持续的进度2、似乎不那么难简单的开始:1#TextProBarV1.py2importtime3scale=104print("------执行开始------")5foriinr 查看详情

简单实用的进度条加载组件loader.js

本文提供一个简单的方法实现一个流程的进度条加载效果,以便在页面中可以通过它来更好地反馈耗时任务的完成进度。要实现这个功能,首先要考虑怎样实现一个静态的进度条效果,类似下面这样的:这个倒是比较简单,两个... 查看详情

linux操作系统实现一个简单的进度条(代码片段)

文章目录一、预备知识二、简单的倒计时三、实现一、预备知识换行和回车的区别\\r:回车,回到当前行的行首,而不会换到下一行,如果接着输出的话,本行以前的内容会被逐一覆盖,如果之前的内容比... 查看详情

阿里云aliplayer高级功能介绍:进度条标记(代码片段)

...所示:接口和属性介绍播放器提供了progressMakers属性,是一个数组类型,每一条记录包含offset时间和text打点的内容,还可以包含其他属性,此属性用于告诉播放器进度条打点记录,记录内容属性说明:名称类型说明offsetNumber打点... 查看详情

shell实现简单的进度条(代码片段)

实现printf的有色输出:参考链接实现代码:#!/bin/bashlabel=('|''/''-''\\\\')str=''str1=''str2=''k=0#表示百分比进度foriin1..100do str+=& 查看详情

androidprogressbar(进度条)的简单使用(代码片段)

圆形进度条只需要加入ProgressBar,默认即是圆形xml文件<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">< 查看详情

设计进度条(代码片段)

...设计,才能让原本的蓝灰配变得更加“灵动”一些哈!最简单的进度条,源码是这样的:<progressid="pro"value="30"></progress>最简单的呈现效果,没有加一点儿修饰的样子是这样的:怎么说呢?就像是被人打了一样,很木,很... 查看详情