2012-07-02 66 views
0

我有一個自定義控件,顯示一些操作的結果。如何在一定的時間後隱藏自定義控件

默認情況下它是隱藏的,它在某些其他類的代碼隱藏中可見。

現在我想在一段時間後隱藏它。我該怎麼做?

編輯:

某些答案建議加上以下在如果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

回答

0

我還沒有看到在這個問題將jQuery任何參考,因此,香草JS溶液: 將這個在用戶控制文件的末尾

<script type="text/javascript"> 
    setTimeout(function(){ 
     document.getElementById("<%=this.ClientID%>").style.display = "none"; 
     }, 5000); 

</script> 
+0

這不起作用,即使是簡單的警報也不會被解僱。該元素通過代碼隱藏可見地變得可見。 – djmj

+0

確保頁面加載時沒有javascript錯誤,並檢查 – Chandu

+0

我編輯了我的問題。問題是,如果可見默認設置爲false,則不會調用javascript。如果它被設置爲true,則該元素從開始就可見,並調用JavaScript超時函數。 – djmj

0

你可以有在執行時改變了對象上的屬性如果您在規定的時間範圍之外,則可視屬性爲false,因此您可以從字段和字段中看到可見屬性與當前時間相比,它們會生成一個布爾值。

0

你也許可以使用JavaScript setTimeout函數來執行一些代碼來隱藏它具有用戶控制在一段時間之後隱藏

<div id="divUserControlContainer"> 
//put your user control embed code here 
</div> 

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

    window.setTimeout(function() { 
     $("#divUserControlContainer").hide(); 
    }, 2000); 

}); 
</script> 
0

您可以通過簡單的jQuery方法實現的div:

$("#CustomControl").hide(1000); 
$("#CustomControl").show(); 
相關問題