1

我想在有 ajax 活动时阻止我的网页屏幕,并在该 ajax 活动结束时取消阻止屏幕。为此,我正在使用块 ui。但它在我的情况下不起作用,我不知道为什么。这是我的代码:

<head runat="server">
<script type="text/javascript" src="jQuery 1.10.1.min.js"></script>
<script type="text/javascript" src="blockui.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $(document).ajaxStart($.blockUI).ajaxStop($.unblockUI);
    });
</script>
<title></title>

<body>
    <form id="form1" runat="server">
    <div>
        <input id="Button1" type="button" value="button" onclick="__doPostBack('UpdatePanel1', '');" />
    </div>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
        <ContentTemplate>
            <div id="blockit" style="width: 200px; height: 200px;">
            </div>
        </ContentTemplate>
    </updatepanel>
    </form>
</body>
</html>

我不知道我的代码有什么问题。请帮帮我

4

1 回答 1

1

使用 UpdatePanel 时,可以使用自带的 javascript 函数。jQuery 函数不起作用,因为它们用于 jQuery ajax 调用,而不是用于 UpdatePanel。

因此,您可以在打开和关闭全屏 div 的位置设置此代码。

<script type="text/javascript"> 
   // if you use jQuery, you can load them when dom is read.
   $(document).ready(function () {
       var prm = Sys.WebForms.PageRequestManager.getInstance();    
       prm.add_initializeRequest(InitializeRequest);
       prm.add_endRequest(EndRequest);
    });        

    function InitializeRequest(sender, args) {
       // Open the full wait screen
       $("#overlay").show();
    }

    function EndRequest(sender, args) {
       // close the full wait screen
       $("#overlay").hide();    
    }
</script> 

更新:关于系统。-> http://msdn.microsoft.com/en-us/library/bb311028.aspx

以及 html 上的覆盖部分....

<div id="overlay" style="display:none;"> </div>

css

#overlay {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-color:#000;
    opacity: .75;
    z-index: 9999999;
}

叠加参考: http ://dabblet.com/gist/2894437
https://stackoverflow.com/a/10945291/159270

于 2013-07-03T06:24:33.257 回答