无法自动隐藏更新面板内的标签(div弹出屏幕)

时间:2014-11-10 07:23:19

标签: javascript asp.net

我只想在5秒后自动隐藏结果标签。它完美地工作在普通形式。但不在弹出屏幕中工作。帮助我解决这个问题。

 <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                        <ContentTemplate>
                            <asp:Button ID="btnExport" runat="server" ValidationGroup="V2" Style="margin-bottom: 0px" 
                                Text="Export" class="btnNew" OnClick="btnExport_Click" />
                            &nbsp;
                                <br />
                            <asp:Label ID="lblResult" runat="server" Text="" class="errMsg" Visible="false"></asp:Label>
                        </ContentTemplate>
                    </asp:UpdatePanel>



function hideuser() {
            window.setTimeout(function () {
                var label = document.getElementById('lblResult');
                if (label != null) {
                    label.style.display = 'none';
                }
            }, 5000);
        }


 protected void btnExport_Click(object sender, EventArgs e)
        {
  string result = objLE.ExportLE(,,,,,,,);
            lblResult.Visible = true;
            lblResult.Text = result;
            System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(Page), "Script", "hideuser();", true);
            ClearLEData();
            ClientScript.RegisterStartupScript(GetType(), "Val", "ShowExpPopup();", true); //this for retain popup screen every postback occurs

}

2 个答案:

答案 0 :(得分:2)

按以下方式更改您的js功能

<script type="text/javascript">
    function hideuser() {

        window.setTimeout(function () {
            var label = document.getElementById('<%= lblResult.ClientID %>');
            if (label != null) {
                label.style.display = 'none';
            }
        }, 5000);
    }
</script>

更改此行

var label = document.getElementById('lblResult');

<强> var label = document.getElementById('<%= lblResult.ClientID %>');

答案 1 :(得分:0)

试试这个:

而不是Visible=false使用style="display:none"

<asp:Label ID="lblResult" runat="server" Text="" 
class="errMsg" style="display:none"></asp:Label>

服务器端控件的

ID在渲染到浏览器后会发生变化。所以你需要像这样使用它

var label = document.getElementById('<%= lblResult.ClientID %>');