本文将利用Asp.Net的回调机制使用Js实现一个简易进度条,其效果如下:

首先,在HTML文档中加入如下代码:
-
<div>
-
<tableclass="statusTable">
-
<tr>
-
<tdid="progress1">
-
</td>
-
<tdid="progress2">
-
</td>
-
<tdid="progress3">
-
</td>
-
<tdid="progress4">
-
</td>
-
<tdid="progress5">
-
</td>
-
<tdid="progress6">
-
</td>
-
<tdid="progress7">
-
</td>
-
<tdid="progress8">
-
</td>
-
<tdid="progress9">
-
</td>
-
<tdid="progress10">
-
</td>
-
</tr>
-
</table>
-
<asp:LabelID="Label1"runat="server"ForeColor="Red"Text="0"></asp:Label>
-
</div>
-
<div>
-
<inputid="btnRequest"type="button"value="请求"onclick="Request()"/>
-
<inputid="btnStop"type="button"value="停止"disabled="disabled"onclick="Stop()"/>
-
</div>
Js部分加入如下Js代码:
-
<scriptlanguage="javascript"type="text/javascript">
-
varidx=0;
-
varprogressTimer;
-
varprogressInterval=1000;
-
functionRequest()
- {
-
document.getElementById("btnStop").disabled="";
-
document.getElementById("btnRequest").disabled="disabled";
-
if(idx>=10)
- {
- Clear();
-
return;
- }
-
vararg=idx;
-
<%=ClientScript.GetCallbackEventReference(this,"arg","GetMsgBack",null)%>;
- idx++;
-
progressTimer=setTimeout('Request()',progressInterval);
- }
-
functionGetMsgBack(result)
- {
-
document.getElementById('progress'+idx).style.backgroundColor='blue';
-
varstatus=Number(result)*10;
-
document.getElementById("Label1").innerHTML=status+"%";
- }
-
functionStop()
- {
- clearTimeout(progressTimer);
- Clear();
- }
-
functionClear()
- {
- idx=0;
-
document.getElementById("btnStop").disabled="disabled";
-
document.getElementById("btnRequest").disabled="";
-
document.getElementById("Label1").innerHTML="0";
-
for(vari=1;i<=10;i++)
-
document.getElementById('progress'+i).style.backgroundColor='transparent';
- }
- </script>
css样式文件中加入如下代码:
- .statusTable
- {
-
width:100px;
-
border:solid1px#000000;
-
padding-bottom:0px;
-
margin-bottom:0px;
- }
- .statusTabletd
- {
-
height:20px;
- }
Asp.Net服务端实现回调代码如下:
-
publicpartialclassDigitStatus:System.Web.UI.Page,ICallbackEventHandler
- {
-
privatestringAspEventArgs;
-
protectedvoidPage_Load(objectsender,EventArgse)
- {
- }
-
publicvoidRaiseCallbackEvent(stringEventArgs)
- {
- AspEventArgs=EventArgs;
- }
-
publicstringGetCallbackResult()
- {
-
inti=Convert.ToInt32(AspEventArgs);
- i++;
-
returni.ToString();
- }
- }
这样,一个简易的进度条就实现了,运行即可得到如页首处的效果。
分享到:
相关推荐
在ASP.NET中实现图片上传并显示进度条的功能是一项常见的需求,尤其在用户上传大体积图片时,进度条能提供良好的用户体验。以下将详细介绍如何在ASP.NET中构建这样的功能。 首先,我们需要理解上传过程的基本原理。...
"一个基于C#+ ASP.NET 2.0 实现的带进度条上传控件源码"的主题涉及到了一个常见但至关重要的功能——文件上传,并且带有进度条显示,这极大地提升了用户的交互体验。下面将详细探讨这一主题的相关知识点。 首先,C#...
在ASP.NET中实现批量文件上传并同时展示进度条效果,是一项常见的需求,特别是在处理大量数据时,用户界面的反馈能够显著提升用户体验。本实例通过结合ASP.NET、Ajax以及ExtJS库,提供了一种高效且直观的解决方案。 ...
在这个特定的场景中,我们讨论的是如何使用SWFUpload库在ASP.NET环境中实现多文件的带进度条上传功能。SWFUpload是一个开源的Flash组件,它允许用户在后台无刷新的情况下进行文件上传,特别适用于大文件上传,同时...
在ASP.NET中实现文件上传带进度条的功能,通常涉及到AJAX技术,以便提供更好的用户体验。在传统的文件上传中,用户可能会遇到页面刷新或者长时间无响应的情况,而通过AJAX技术,我们可以实现异步文件上传,同时展示...
可以使用AJAX回调函数来实现这一功能。"使用说明.doc"可能详细解释了如何配置和调用这个过程。 5. **安全性和性能优化**:确保在实现进度条的同时,不会引入安全漏洞,如跨站请求伪造(CSRF)。另外,对于大量用户...
这个实例"asp.net C# 多文件上传带进度条的上传实例"就是一个很好的解决方案,实现了在不刷新页面的情况下,实时显示文件上传进度,提升了用户体验。 首先,我们要理解ASP.NET中的文件上传机制。在ASP.NET中,文件...
同时,通过Ajax的回调机制,我们可以实时获取上传进度,并在客户端更新进度条。 为了实现这个功能,我们需要以下关键组件: 1. **前端界面**:创建一个HTML表单,包含文件选择输入框和进度条元素。使用JavaScript...
在ASP.NET 2.0中,开发者经常需要处理文件上传的功能,而为了提供更好的用户体验,结合AJAX技术实现文件上传并显示进度条是常见的需求。本文将深入探讨如何使用ASP.NET 2.0和AJAX来实现这一功能。 首先,我们需要...
在ASP.NET中,上传大文件并显示进度条是一项常见的需求,尤其在用户可能需要等待较长时间的情况下,进度条可以提供良好的用户体验。以下是对这个主题的详细讲解。 首先,ASP.NET默认上传文件大小有限制,通常为4MB...
这通常涉及到处理HTTP头部,创建自定义的回调机制,以及可能的WebSocket或SignalR技术,以实现实时双向通信。 在提供的压缩包文件中,"控件_ProgressBar0.2.2.0.rar"很可能包含了一个特定版本的进度条控件,可以...
在上述代码中,我们设置了上传的SWF文件路径、服务器端处理程序URL、取消按钮图片、上传目录、队列ID、是否允许多文件上传、是否自动上传、可接受的文件扩展名和描述,以及上传进度和完成时的回调函数。 至于拖拽...
在ASP.NET中实现一个下载进度条功能,通常是为了提供用户友好的体验,让用户在大文件下载过程中能够看到实时的进度,提升用户体验。本项目“SwfUploadDemo”就是这样一个示例,它使用了SwfUpload插件来实现这一功能...
3. **进度更新**:利用jQuery UI的进度条,我们需要在服务器端定期更新上传进度,并通过AJAX回调将其传回客户端。可以使用WebMethod或SignalR等技术来实现服务器与客户端的实时通信。 4. **错误处理**:大文件上传...
6. **进度条实现**:为了显示上传进度,开发者需要服务器端定期更新文件上传的进度信息,并通过AJAX回调返回给客户端。客户端则根据这些信息更新进度条的状态。这通常涉及到浏览器的事件监听,如`onprogress`事件,...
在ASP.NET中,处理文件上传是一项常见的任务,特别是在用户需要上传大文件或多个文件时,提供一个带有进度条的上传控件能够极大地提升用户体验。"asp.net带进度上传控件"正是为了解决这个问题,它允许用户在上传文件...
通过JavaScript绑定WebUploader实例,监听`fileQueued`、`uploadStart`、`uploadProgress`、`uploadSuccess`等事件,实现文件选择、开始上传、进度更新和上传成功后的回调。 3. **后端处理**:在C#中,创建一个接收...
在ASP.NET中,可以利用UpdateProgress控件来创建进度条效果。UpdateProgress控件与UpdatePanel配合使用,可以在页面的异步更新过程中显示加载指示器。当文件上传操作开始时,UpdateProgress将显示,直到文件上传完成...