让我们说在借助UpdatePanel的HTML中,我在ASP.NET处理来自Web服务的数据时运行“加载”动画gif。
我只是想知道是否有办法在.NET代码中实现可以从HTML代码中侦听的事件,例如:
我正在逐个从WebService请求人员数据,我想在HTML方面显示加载文本。
Importing person 1
Importing Person 2
Importing Person 3
All Done!
and out
有没有诀窍呢?
现在我的HTML代码中有这个
HEAD 部分
<script type="text/JavaScript" language="JavaScript">
function pageLoad() {
try {
var manager = Sys.WebForms.PageRequestManager.getInstance();
manager.add_endRequest(endRequest);
manager.add_beginRequest(OnBeginRequest);
manager
}
catch (err) {
}
}
function OnBeginRequest(sender, args) {
$("#loadingText").html("<img src='_assets/img/animated/parweb_loading.gif' alt='' /> " + strLoadingText);
}
function endRequest(sender, args) {
}
</script>
BODY 部分有:
<asp:UpdateProgress AssociatedUpdatePanelID="pnlAllIn" runat="server" ID="pnlUpdating">
<ProgressTemplate>
<div id="loadingText" style="background-color: Red; position: absolute; width: 200px;
top: 0px; right: 20px; padding: 5px; color: White; text-align: center; vertical-align: middle;
font-size: 14px;">
</div>
</ProgressTemplate>
</asp:UpdateProgress>
感谢您的帮助。
答案 0 :(得分:1)
微软的AJAX.NET是一个上层控件,所以它很容易使用,但你有点受限。
使用Michael Schwarz's AJAX.NET library,您可以这样做:
编写一个导入信息的方法。此方法会将日志写入会话或其他位置。
编写第二种方法来检查此日志并在操作继续时进行打印。
答案 1 :(得分:0)
你能否使用AJAX来做到这一点。在单独的线程上触发对Web服务的查询。线程应保留一个变量(或引用一个)的实例,以跟踪Web服务的进度。然后,javascript可以每2秒拨打一次电话以获取状态,然后相应地更新您的HTML。