完成更新面板回发后如何执行客户端代码

How can we execute the client code after completing the update panel postback?

本文关键字:何执行 执行 代码 客户端 更新      更新时间:2023-09-26

当我们单击复选框并在检索数据后隐藏加载器时,我有一个问题来显示加载器图像。现在,当我们选中复选框时,加载将加载"divData"。现在我的场景是这样的,divData 位于更新面板中,并且异步触发器复选框与之相关联。现在我像这样展示加载器

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 });
        }

在这里,当我们单击复选框时,我正在传递显示值"内联"。我已经编写了代码来隐藏加载器图像,如将数据绑定到divData 后给出的那样。

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

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

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

在母版页中注册脚本管理器的 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 });
    }

希望这有帮助..