5

私はこれをPage_Loadに登録しました

 Page.ClientScript.RegisterStartupScript(this.GetType(), "clientscript", "document.getElementById('showdiv').style.visibility = 'hidden';", true);

しかし、それは隠されていません...私のdivは以下のとおりです

<div id="showdiv">
   <input class="button" type="button" value="OK" name="success_button" id="my button"  onclick="javascript:window.close();" />
   </div>

私は何を間違っていますか?ご協力ありがとうございました

4

8 に答える 8

6

この単純なクライアント側の操作 (行コントロールの表示/非表示など) を JavaScript で行うか、jQuery などの .js ライブラリでさらに簡単に行うことを強くお勧めします。jQuery スクリプトをアプリケーションに組み込んだら、ページの初期化が完了した後にその DIV を非表示にするために必要な作業はこれだけです。

このスクリプト セクションをページの上部に含めるか、参照されている .js ファイルが既にある場合はそこに含めます。

<script type="text/javascript">

 //$(document).ready is used to define a function that is guaranteed to be called only after the DOM has been initialized.
 $(document).ready(function () {
    //Hide the div
    $('#showdiv').hide();
    //conversely do the following to show it again if needed later
    //$('#showdiv').show();
 });

</script>

このメソッドに関する jQuery API ドキュメント:
http://api.jquery.com/hide/

于 2012-06-05T19:38:53.873 に答える
4

asp:Panelサーバータグを使用しないのはなぜですか?

フロントエンド:

<asp:Panel runat="server" ID="ShowDiv">
...
</asp:Panel>

バックエンド:

ShowDiv.Visible = false;

コントロールは実行時Panelに としてレンダリングさ<div>れます。これは、クライアント スクリプトを登録するよりもすっきりしているように思えます。

于 2012-06-05T18:58:04.220 に答える
4

HTML

 <div id="div1" runat="server"></div>

C#

div1.Visible=false;

私はこれがうまくいくと思う...

于 2014-05-20T09:09:08.387 に答える
2

2つのオプションがあります

1-「runat = server」属性をdivに追加し、コードビハインドからそれにアクセスして、可視性をfalseにするか、スタイルを追加して非表示にします。

myDiv.Style.Add("display","none");

2-JavaScript関数を追加して非表示にすると、jqueryを使用してそれを行うことができます。

于 2012-06-06T10:31:25.917 に答える
0

これは別のロード順序の問題だと思います。

スクリプトは、ロードされるとすぐに実行されます。非表示にしようとしているページ要素が、スクリプトの実行時にDOMにロードされていない場合、非表示にするものは何もありません。登録されたスクリプトはすべて、HTMLコンテンツの前にページの上部に表示されると思います。したがって、これは常に発生します。

これを機能させるには、ロードイベントリスナーに配置する必要があります。参照:onloadタグを使用せずに、ページの読み込み時にjavascriptコードを実行する

とはいえ、無条件でページ要素を非表示にしようとしているので、CSSで非表示にする要素にクラスを追加するか、サーバー側でこのページ要素をオフにするのと同じくらい幸せです。サーバーコードから直接そのスタイル/可視性を操作します。

Divが表示されるかどうかに何らかの条件があると思われる場合は、クライアント側のjavascriptですべてを実行する方がおそらく優れているため、表示を制御するためだけにサーバーをトリップする必要はありません。

于 2012-06-05T20:42:56.050 に答える