听取事件:来自.NET的HTML

时间:2009-02-05 08:54:50

标签: asp.net javascript ajax events

让我们说在借助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='' />&nbsp;" + 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>

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

微软的AJAX.NET是一个上层控件,所以它很容易使用,但你有点受限。

使用Michael Schwarz's AJAX.NET library,您可以这样做:

  1. 编写一个导入信息的方法。此方法会将日志写入会话或其他位置。

  2. 编写第二种方法来检查此日志并在操作继续时进行打印。

答案 1 :(得分:0)

你能否使用AJAX来做到这一点。在单独的线程上触发对Web服务的查询。线程应保留一个变量(或引用一个)的实例,以跟踪Web服务的进度。然后,javascript可以每2秒拨打一次电话以获取状态,然后相应地更新您的HTML。