2017-09-27 25 views
0

WebサイトにASP.NETを使用して、ユーザーの組織情報を検索するサーバーコールを作成しています。その情報に基づいて、divを表示または非表示にする必要があります。ヘッダーには、確実に実行されるC#関数があります。私はdivを隠すために次の行を試しました。ボディにはASP.NETを使用してHTML部門を非表示にする

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

divID.Visible = false; 

、私は現在、ASPを使用しています。サーバーで実行され、ID "divIdは" が含まれてパネル。私が何をするにしても、私はdivを(手動でスタイリングを入れないで)隠すことができません。私は体の前後にスクリプトを入れてみましたが、違いはありませんでした。これを行うための最良の方法についてのご意見をお待ちしております。

編集:

ここにはC#の開始コードがあります。

<script runat="server" language="C#"> 
    void getUserInfo(Object sender, EventArgs ev){ 

C#コードの残りの部分は無関係であるが、上に示した関連線は間違いなく実行されています。

HTMLの部分は次のようになります。

<asp:Panel runat="server" id="divID" style="width:200px; height:130px; "> 
    <div style="text-align:center">Test Data</div> 
</asp:Panel> 
+0

完全なaspxコードを表示できますか? –

+0

上記の該当する行を追加しました。 –

答えて

0

私は間違いなく実行されるC#の機能を持っています。

HTMLページのヘッダーについては、いいえ、それは間違いなく実行されていません。 C#コードはサーバー側でのみ実行されます。

あなたの投稿に基づいて、私はここでWebFormsを話していると仮定しています。あなたのaspxファイルにスクリプトブロックがあります。これは問題ありませんが、サーバーサイドコードをcode behindファイルに配置することをお勧めします。

PreRenderサイクルのハンドラを追加してpage lifeサイクルのハンドラを追加し、そこにdivを表示/非表示するロジックを配置するだけです。 display: noneを設定すると、HTMLとしてそれをレンダリングしますが、それがページ上に表示されていない一方でWebフォームコントロールのVisible propertyを設定すると、ページにレンダリングからコントロールを除外すること

public void Page_Prerender(object sender, EventArgs e) 
{ 
    divID.Visible = false; 
    ' OR 
    'divID.Style.Add("display","none"); 
} 

注意。

+0

これは完全に機能しました!ご協力いただきありがとうございます。 –

+0

@ cbreden1この返信が問題を解決した場合。左の灰色の目盛りをクリックして、それを受け入れるようにしてください。 –

2

C#のコードは、常にコンパイルされ、サーバー側から実行、およびので、あなたがポストバックまたはコールバックを使用しない限り、一度レンダリングされたページの状態に影響を与えることはできませんされています。クライアント側でコントロールの可視状態を変更する場合は、コントロールを表示および非表示にするために、クライアント側でJavaScriptを使用する必要があります(ボタンクリックによってトリガーされる可能性があります)。

例として、以下のリンクで解決策をチェックしてください。ヘッダで https://forums.asp.net/t/1603211.aspx?Show+hide+div+on+button+click+without+postback

<script type="text/javascript"> 
    function ToggleDiv(Flag) { 
     if (Flag == "first") { 
      document.getElementById('dvFirstDiv').style.display = 'block'; 
      document.getElementById('dvSecondDiv').style.display = 'none'; 
     } 
     else { 
      document.getElementById('dvFirstDiv').style.display = 'none'; 
      document.getElementById('dvSecondDiv').style.display = 'block'; 
     } 
    } 
</script> 
<asp:Button ID="btn" runat="server" Text="Show First Div" 
    OnClientClick="ToggleDiv('first');return false;" /> 

<asp:Button ID="Button1" runat="server" Text="Show Second Div" 
OnClientClick="ToggleDiv('second');return false;" /> 
<br /> 
<div id="dvFirstDiv" style="display: none;"> 
    First Div 
</div> 
<div id="dvSecondDiv" style="display: none;"> 
    Second Div 
</div> 
+0

このブール変数(表示または非表示)をC#スクリプトからいくつかのJavaScriptに渡す最も簡単な方法は何でしょうか? –

+0

できません。私の更新された答えを見てください。 – Marisa

関連する問題