0

いくつかの操作の結果を表示するカスタム コントロールがあります。

デフォルトでは非表示になっており、他のクラスのコード ビハインドで表示されます。

一定の時間が経過したら非表示にしたいと思います。どうすればいいのですか?

編集:

カスタムコントロールで使用されている場合、カスタムコントロールの最後に次の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

4

4 に答える 4

0

オブジェクトにプロパティを設定すると、実行時に表示プロパティがfalseに変更され、規定の時間枠外にいる場合は、開始フィールドと終了フィールドが表示され、現在の時刻と比較してブール値が生成されます。 。

于 2012-07-02T14:26:13.327 に答える
0

質問でjQueryへの言及を見たことがないため、バニラJSソリューション:これをユーザーコントロールファイルの最後に置きます

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

</script>
于 2012-07-02T14:39:06.180 に答える
0

おそらくJavaScriptsetTimeout関数を使用して、一定期間後に非表示にするユーザーコントロールを持つdivを非表示にするコードを実行できます

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

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

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

});
</script>
于 2012-07-02T14:28:46.733 に答える
0

簡単な JQuery メソッドでそれを実現します。

$("#CustomControl").hide(1000);
$("#CustomControl").show();
于 2012-07-02T14:34:37.340 に答える