0

当我们单击复选框并在检索数据后隐藏加载器时,我有一个显示加载器图像的问题。现在,当我们选中复选框时,负载将加载“divData”。现在我的场景是这样的 divData 是在 updatepanel 中,异步触发器复选框与其关联。现在我正在显示这样的加载程序

function ShowProgress(displayValue) {

            var modal = $("<div id='divLoading'/>");
            modal.addClass("modal");
            modal.css('display', displayValue);
            $('body').append(modal);
            var loading = $(".loading");
            loading.show();
            var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
            var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
            loading.css({ top: top, left: left, display: displayValue });
        }

在这里,当我们单击复选框时,我传递了 displayValue 'inline'。我已经编写了代码来隐藏加载器图像,因为在将数据绑定到 divData 后给出。

ClientScript.RegisterClientScriptBlock(Page.GetType(), "Unload", "ShowProgress('none');", True)

现在上面的代码无法隐藏加载器。复选框控件不在另一个更新面板中。我已经尝试了所有方法。谁能帮我找到解决方案?

4

1 回答 1

0

我正在发布一个全局解决方案......如果发生任何部分回发,这将有效,模式加载弹出窗口将出现,并且一旦获取数据,弹出窗口将按预期关闭。

在 MasterPage 中注册 scriptmanager 的 BeginHandler 和 EndHandler 事件,如下所示。

       Sys.Application.add_init(appl_init);
        function appl_init() {
            var pgRegMgr = Sys.WebForms.PageRequestManager.getInstance();
            pgRegMgr.add_beginRequest(BeginHandler);
            pgRegMgr.add_endRequest(EndHandler);
        }
        function BeginHandler(sender, args) {
            ShowProgress('block');
        }
        function EndHandler() {
           ShowProgress('none');
        }
        function ShowProgress(displayValue) {

        var modal = $("<div id='divLoading'/>");
        modal.addClass("modal");
        modal.css('display', displayValue);
        $('body').append(modal);
        var loading = $(".loading");
        loading.show();
        var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
        var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
        loading.css({ top: top, left: left, display: displayValue });
    }

希望这可以帮助..

于 2013-09-11T11:09:34.053 回答