2012-01-07 22 views
1

をクリックして、私はここに表示または非表示

<asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="var b = ChangeColorCA(); this.style.cursor='pointer'; return b" onmouseout="RemoveColorCA()"></asp:Label>&nbsp; 

異なるIDと異なるIDと3つのdivを持つすべてのコードをfolowingは私が望むすべて

<div id="DIV_CA" runat=server align="center" visible="false" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto;">Some data</div> 

ためのdivのコードである3つのラベルを持っていますラベルをクリックして表示または非表示にする方法誰にでも私はラベルをクリックすると特定のdivが表示され、他のラベルは非表示にし、次のラベルをクリックすると表示されるはずです。 jQueryので

更新履歴 これは、ここに私のスクリプトコード

<script type="text/javascript"> 
    function hideshow(span) { 
    var div = document.getElementById("DIV_" + span.id); 
    if (div.style.display == "none") 
     div.style.display = "block"; 
    else 
     div.style.display = "none"; 
    } 
</script> 

とあるがlablelコードが

<asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="var b = ChangeColorCA(); this.style.cursor='pointer'; return b" onmouseout="RemoveColorCA()" onclick="hideshow(this)" ></asp:Label>&nbsp; 

答えて

3

あなたはJavaScriptを書くことができます。

マークアップ:

<asp:Label ID="CA" 
       runat="server" 
       onclick="hideshow(this)" 
       Text="Label"> 
</asp:Label> 
<div id="DIV_CA" 
    runat=server 
    align="center" 
    style="background-color:#f3f3f3; text-align: 
      left; width: 500px; height: 470px; overflow:auto; display:none;"> 
     Some data 
</div> 

はJavaScript:

function hideshow(span) { 
    var div = document.getElementById("DIV_" + span.id); 
    if (div.style.display == "none") 
     div.style.display = "block"; 
    else 
     div.style.display = "none"; 
    } 

EDIT:すべてのdivを非表示にし、特定のdivを表示するには。

マークアップ:関数hideDiv()すべての子のdivにdisplay:noneを設定:JavaScriptが別の<div/>

<div id="allDiv"> 
     <asp:Label ID="CA" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="this.style.cursor='pointer'; " onclick="hideshow(this)"></asp:Label> 
     <asp:Label ID="CB" runat="server" Font-Bold="False" Font-Names="Arial" Font-Size="10pt" style="padding-top:6px;" ForeColor="#CCCCCC" Height="100%" Text="Current Activities" onmouseover="this.style.cursor='pointer'; " onclick="hideshow(this)"></asp:Label> 
     <div id="DIV_CA" runat="server" align="center" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto; display:none;">Some data1</div> 
     <div id="DIV_CB" runat="server" align="center" style="background-color:#f3f3f3; text-align: left; width: 500px; height: 470px; overflow:auto; display:none;">Some data2</div> 
</div> 

内のすべての<asp:Label/><div>を置きます。

<script type="text/javascript"> 
    function hideshow(span) { 
     hideDiv(); 
     span.style.fontWeight = "bold"; 
     var div = document.getElementById("DIV_" + span.id); 
     if (div.style.display == "none") 
      div.style.display = "block"; 
     else 
      div.style.display = "none"; 
    } 
    function hideDiv() { 
     var childDiv = document.getElementById("allDiv").childNodes; 
     for (i = 0; i < childDiv.length; i++) { 
      if (childDiv[i].tagName == "DIV") { 
       childDiv[i].style.display = "none"; 
      } 
      if (childDiv[i].tagName == "SPAN") { 
       childDiv[i].style.fontWeight = "normal"; 
      } 
     } 
    } 
</script> 
+0

Okを確認してください –

+0

はいそれはすべてのラベルを太字にしますが、次のラベルをクリックすると通常にならないようにしています –

+0

YEs私はそれを上記のようにコピーしました –

2

で使用この方法を:

$("#<%= CA.ClientID %>").click(function(){ 

    $("#<%= DIV_CA.ClientID %>").toggle(); 

}); 
+0

私はそれを修正した、申し訳ありません –

+0

見て、 "ClietID"を "ClientID"に変更しました。この構文エラーは、あなたのコメントに入れたそのエラーを引き起こします。 –

+0

何もない、ユーザーがlableをクリックしてDIVを切り替えるとこのコードが実行される –

0

作品の罰金になります:

<asp:Label CssClass="clickLabel" Text="text" ID="id1" runat="server" ClientIDMode="Static">id1</asp:Label><br/> 
<div id="div_id1" class="someclass" style="color:Red; display:none;">red</div> 
<br/> 
<asp:Label CssClass="clickLabel" Text="text" ID="id2" runat="server" ClientIDMode="Static">id2</asp:Label><br/> 
<div id="div_id2" class="someclass" style="color:blue; display:none;">blue</div> 
<br/> 

<asp:Label CssClass="clickLabel" Text="text" ID="id3" runat="server" ClientIDMode="Static">id3</asp:Label><br/> 
<div id="div_id3" class="someclass" style="color:green; display:none;">green</div> 

<script type="text/javascript"> 
    $(document).ready(function() { 
     $(".clickLabel").click(function() { 
      var div_id = "#div_" + $(this).attr("id"); 
      $(".someclass").not(div_id).css("display", "none"); 
      $(div_id).css("display", "block"); 
     }); 
    }); 
</script> 
+0

NOt wroking Sir –

+0

新しいバージョンがあります。 – MDP

0

1)2つのCSSクラスを作成します。 divClassとdivVisibleです。 1つはすべてのdiv用で、もう1つは目に見えるdiv用です。

2)JavaScript関数への参照を使用して、ラベルにOnClientClickイベントを登録します。 showHideDiv。

3)JavaScript関数では、可視クラスのすべてのdivを非表示にし、ラベルのIDを使用して正しいdivを見つけて表示します。

function showHideDiv(el) 
{ 
    var id = el.getAttribute('id'); 
    var div = document.getElementById('DIV_' + id); 
    var hideVisibleDiv = document.getElementsByClassName('divVisible'); 

    for(var e in hideVisibleDiv) 
    { 
    hideVisibleDivs[e].className = 'divClass'; 
    } 
    div.className = 'divClass divVisible'; 
} 

そのような何か...

0

あなたのページに更新パネルを使用する場合は理由を取得するために、このコードを使用する必要があります。

Sys.WebForms.PageRequestManager.getInstanceを()add_endRequest (AsyncPostback);
function AsyncPostback(){//ここにコードを挿入};
JavaScriptコードが1回のポストバック後に実行できないためです。
幸運を祈る!