简单实现asp.net进度条

原创 2011年07月17日 23:24:03

程序中为了让更直观的反映命令执行的进度,考虑使用进度条,但是asp.net中没有专门的进度条控件,在网上搜了一下,实现方法都很复杂,就自己动手做了一个,实现起来其实也很简单。后来又想了个方法,加在后面。


方案一:适用webform

效果如图:


 用两层DIV,分别表示进度条总的外框和当前进度,通过不断调整“processbar”的DIv宽度,就实现了当前进度的显示

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script language="javascript" type="text/javascript">
        function set() { //用来设置进度条的长度
            var obj,Mywidth;
            obj = document.getElementById("processbar");
            Mywidth = obj.style.width; Mywidth = Mywidth.replace("px", ""); Mywidth = parseInt(Mywidth);Mywidth++;
            obj.style.width = Mywidth + "px";
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div style="padding: 1px; background-color: #E6E6E6; border: 1px solid #C0C0C0; width: 300px; height: 20px;">
     <div id="processbar" style="background-color: #00CC00; height: 18px; width: 1px;">
      
    </div>
    </div>
    <asp:Button ID="Button1" runat="server" Text="Button" />
</form>
</body>
</html>

后台代码部分

使用 ClientScript.RegisterStartupScript向前台代码中注册新的js脚本,但是需要注意的事 ClientScript.RegisterStartupScript(ClientScript.GetType(), key, str),中的key不变的话,词句只有第一次起作用,为了能够不断的刷新页面上的进度条,我们必须不断的改变key的值

 Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim i As Int16
        Dim str As String = ""
        For i = 0 To 100
            str = "<script>"

            str += "set();"
            str = str + "</script>"
            ClientScript.RegisterStartupScript(ClientScript.GetType(), "set" & i, str)
          
        Next

    End Sub

方案二、适用于UI代码分离

思路:通过中间文件来实现,需要三个文件,前台文件 、

思路:后台程序把运行的实时状态写入session中,中间文件负责把当前session的状态输出,前台文件通过反复读取中间文件的输出,而获取到后台程序执行的进度,并显示,从而达到显示进度的作用,此方案在使用jquery嵌套调用时会有回调执行错误,具体代码随后加上。

asp.net多线程,执行真实时间与百分比的进度条

asp.net利用多线程执行长时间的任务,客户端显示任务执行的真实时间与百分比。 在asp.net中执行一个长时间的操作,有的时候需要在在客户端有一个反馈能了解到任务的执行进度,大致看了一下有这么几种...
  • lovegonghui
  • lovegonghui
  • 2015年11月11日 09:22
  • 1313

一个基于ASP.NET+C#实现的Web上传进度条控件程序例子

  • 2008年09月29日 17:53
  • 2KB
  • 下载

在ASP.NET中显示进度条

在ASP.NET中显示进度条【孟宪会之精彩世界】对于加载时间比较长的ASP.NET页面,我们可以在客户端浏览器中显示进度条来显示页面正在装载。下面就是具体的实现过程:新建项目,名字为WebPortal...
  • net_lover
  • net_lover
  • 2004年04月19日 19:03
  • 17383

很好用的第三方进度条控件附加C#源码

  • 2013年08月31日 17:53
  • 70KB
  • 下载

asp.net 实现进度条 用来显示加载进度或程序处理进度

private void Page_Load(object sender, System.EventArgs e) { beginProgress(); for...
  • smartsmile2012
  • smartsmile2012
  • 2012年11月09日 16:29
  • 8772

asp.net单文件带进度条上传

asp.net单文件带进度条上传,不属于任务控件,也不是flash类型的上传,完全是asp.net、js、css实现上传。源码为开发测试版,需要使用的亲需要注意修改配置文件。...
  • qin_zhangyongheng
  • qin_zhangyongheng
  • 2015年06月28日 22:10
  • 963

在ASP.NET中显示进度条

于加载时间比较长的ASP.NET页面,我们可以在客户端浏览器中显示进度条来显示页面正在装载。下面就是具体的实现过程: 1、新建项目,名字为WebPortal,在项目类型中选择Visual C#项目或者...
  • hyl8218
  • hyl8218
  • 2006年12月28日 23:38
  • 659

Asp.net实现进度条完整功能(附源码)

  • 2017年11月29日 16:04
  • 61KB
  • 下载

ASP.NET实现进度条(收集)

建立一个WEB工程,添加新项->HTML页面,命名为ProgressBar.htm,内容如下:DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition...
  • 2004v2004
  • 2004v2004
  • 2008年02月19日 15:01
  • 3591

C# asp.net与jquery做ajax简单进度条

一直以为response.Flush() 可以实现。。。。发现不行的 最后还是采用了全局参数保存到 cahe 来做了 setCahe.ashx 模拟操作的事件进度 public voi...
  • livelymoon
  • livelymoon
  • 2015年08月28日 11:47
  • 806
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单实现asp.net进度条
举报原因:
原因补充:

(最多只允许输入30个字)