我有一個自定義控件,顯示一些操作的結果。如何在一定的時間後隱藏自定義控件
默認情況下它是隱藏的,它在某些其他類的代碼隱藏中可見。
現在我想在一段時間後隱藏它。我該怎麼做?
編輯:
某些答案建議加上以下在如果Visible="false"
上定製控制使用哪個不工作的自定義控制結束的javascript塊。
但我沒有說得那麼清楚,所以我接受了這個答案。
一定要看看:How to call javascript function from code-behind
如果使用Visible="true"
正確調用超時功能。
ASPX:
自定義控制 - ASPX:
<control id="customControl" runat="server" Visible="false"/>
解決方法如果Visible="true"
在標記被用於
<div id="body">
<!-- custom control -->
</div>
<script type="text/javascript">
window.setTimeout(function() { document.getElementById('<%=Me.divBody.ClientID%>').style.display = 'none'; }, 2000);
</script>
自定義控制 - 代碼隱藏:
Me.customControl.Visible = True
解如果Visible="false"
在標記被用於:
從啓動腳本塊不被渲染並且以後不會自動添加。所以我們需要註冊它。
自定義控制 - ASPX:
<div id="divBody">
<!-- custom control -->
</div>
<script type="text/javascript">
window.setTimeout(function(){ alert("test"); });
</script>
自定義控制 - 代碼隱藏:
Me.customControl.Visible = True
Dim hideScript AS String = "window.setTimeout(function() { document.getElementById('" & Me.divBody.ClientID & "').style.display = 'none'; }, 2000);"
ScriptManager.RegisterClientScriptBlock(Me.Page, Me.GetType, "script", hideScript, True)
來源:http://www.codeproject.com/Tips/85960/ASP-NET-Hide-Controls-after-number-of-seconds
這不起作用,即使是簡單的警報也不會被解僱。該元素通過代碼隱藏可見地變得可見。 – djmj
確保頁面加載時沒有javascript錯誤,並檢查 – Chandu
我編輯了我的問題。問題是,如果可見默認設置爲false,則不會調用javascript。如果它被設置爲true,則該元素從開始就可見,並調用JavaScript超時函數。 – djmj