いくつかの操作の結果を表示するカスタム コントロールがあります。
デフォルトでは非表示になっており、他のクラスのコード ビハインドで表示されます。
一定の時間が経過したら非表示にしたいと思います。どうすればいいのですか?
編集:
カスタムコントロールで使用されている場合、カスタムコントロールの最後に次のjavascriptブロックを追加することを提案する回答がいくつかありVisible="false"
ました。
しかし、私はそれを十分に明確にしなかったので、それを答えとして受け入れました.
見てみる必要があります:コードビハインドからjavascript関数を呼び出す方法
を使用すると、タイムアウト関数が正しく呼び出さVisible="true"
れます。
ASPX:
<control id="customControl" runat="server" Visible="false"/>
がマークアップで使用されている場合の解決策Visible="true"
:
カスタム コントロール - ASPX:
<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