我只想在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" />
<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
}
答案 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 %>');