利用Asp.Net回调机制实现进度条
发布时间:2020-03-14 11:49:05 所属栏目:Asp教程 来源:站长网
导读:本文将利用Asp.Net的回调机制使用Js实现一个简易进度条
其效果如下: 首先,在HTML文档中加入如下代码: <div> <table> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> </tr> </table> <asp:Label runat="server" ForeColor="Red" Text="0"></asp:Label> </div> <div> <input type="button" value="请求" /> <input type="button" value="停止" disabled="disabled" /> </div> Js部分加入如下Js代码: <script language="javascript" type="text/javascript"> var idx = 0; var progressTimer; var progressInterval = 1000; function Request() { document.getElementById("btnStop").disabled = ""; document.getElementById("btnRequest").disabled = "disabled"; if(idx >= 10) { Clear(); return; } var arg = idx; <%= ClientScript.GetCallbackEventReference(this, "arg", "GetMsgBack",null) %>; idx++; progressTimer = setTimeout('Request()',progressInterval); } function GetMsgBack(result) { document.getElementById('progress'+idx).style.backgroundColor = 'blue'; var status = Number(result) * 10; document.getElementById("Label1").innerHTML = status + "%"; } function Stop() { clearTimeout(progressTimer); Clear(); } function Clear() { idx = 0; document.getElementById("btnStop").disabled = "disabled"; document.getElementById("btnRequest").disabled = ""; document.getElementById("Label1").innerHTML = "0"; for (var i = 1; i <= 10; i++) document.getElementById('progress' + i).style.backgroundColor = 'transparent'; } </script> css样式文件中加入如下代码: .statusTable { width:100px; border:solid 1px #000000; padding-bottom:0px; margin-bottom:0px; } .statusTable td { height:20px; } Asp.Net服务端实现回调代码如下: public partial class DigitStatus : System.Web.UI.Page, ICallbackEventHandler { private string AspEventArgs; protected void Page_Load(object sender, EventArgs e) { } public void RaiseCallbackEvent(string EventArgs) { AspEventArgs = EventArgs; } public string GetCallbackResult() { int i = Convert.ToInt32(AspEventArgs); i++; return i.ToString(); } } 这样,一个简易的进度条就实现了,运行即可得到如页首处的效果。 (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |