如何隐藏后面的代码加载图像div

时间:2016-07-27 13:22:01

标签: javascript c# asp.net

CSS:

    <style type="text/css">
    .modal
    {
        position: fixed;
        top: 0;
        left: 0;
        background-color: black;
        z-index: 99;
        opacity: 0.8;
        filter: alpha(opacity=80);
        -moz-opacity: 0.8;
        min-height: 100%;
        width: 100%;
    }
    .loading
    {
        font-family: Arial;
        font-size: 10pt;
        border: 5px solid #67CFF5;
        width: 200px;
        height: 100px;
        display: none;
        position: fixed;
        background-color: White;
        z-index: 999;
    }
</style>

JS:

<script type="text/javascript">
    function ShowProgress() {
        // alert("aa");
        setTimeout(function () {
            var modal = $('<div />');
            modal.addClass("modal");
            $('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 });
        }, 200);
    }
</script>

HTML:

 <div class="loading" align="center" id="loader">
                Loading. Please wait.
                <br />
                <img id="abc" src="../../Images/loader.gif" alt="" />
            </div>
<div>
  <asp:UpdatePanel ID="UpdatePaneltab" runat="server" UpdateMode="Always">
        <ContentTemplate>
<asp:Button ID="btnSearch" runat="server" Text="Run" CssClass="btn-in"   OnClick="btnSearch_Click"  OnClientClick="ShowProgress()" />
</ContentTemplate>
<Triggers>
            <asp:PostBackTrigger ControlID="btnSearch" />
        </Triggers>
    </asp:UpdatePanel>

我正在使用上面的代码来显示按钮点击时加载图片div。但是我无法在按钮点击代码内的任何地方隐藏它。它会在所有按钮点击代码执行后自动隐藏。我有exporttoexcel功能,我希望在我的此功能开始执行之前隐藏它,因为一旦导出开始,就无法控制页面和代码。但是即使导出完成,加载图像也会连续显示。 目前我正在使用

ClientScript.RegisterStartupScript(this.GetType(), "hwa", "document.getElementById('loader').style.visibility = 'hidden';", true);

隐藏div。

我无法找出问题是什么。我需要在代码中添加一些我遗漏的东西。 有什么建议 ?有任何想法吗? 请帮忙。我被困了。

1 个答案:

答案 0 :(得分:0)

你应该在javascript文件或aspx文件中写一个javascript函数。

function HideLoader() {
    $(".loading").hide();
    $(".modal").hide();
}

然后你应该在你的启动脚本中调用这个函数:

ClientScript.RegisterStartupScript(this.GetType(), "hwa", "HideLoader();", true);

由于在加载页面后将RegisterStartupScript的输出写入页面,因此不会执行内联脚本。

<强> 编辑:

您应该隐藏.modal div.loading div。我改变了javascript。你应该给HideLoader javascript函数添加一个断点,看看它是否被调用。如果它被调用并且它不会隐藏div,那么您将有更轻松的时间来解决问题。只需更正js函数即可隐藏加载div。如果它没有被调用,你应该专注于RegisterStartupScript,看看如何让它调用你的函数。