2009-04-02 9 views
0

Ich erstelle eine Liste von Daten mit Repeater Control. Einige Zeilen haben möglicherweise andere Zeilen, die mit dem klickbaren Bild der Hauptreihe umgeschaltet werden sollten.

Hier ist der HTML-TeilMit Repeater Control erstellte Zeilen umschalten ASP.NET

<table cellpadding="2" cellspacing="0" width="100%"> 
       <asp:Repeater ID="repeatLockers" runat="Server"> 
        <HeaderTemplate> 
         <tr> 
      <td>&nbsp;</td> 
          <td>A</td> 
         </tr> 
        </HeaderTemplate> 
        <ItemTemplate> 
         <tr id="trItem" class="SomeParentClass" runat="server"> 
          <td> 
           <img id="imgToggleHomeInfo" runat="server" alt="show/hide repetitves" src="icon_plus.gif" 
            style="cursor: pointer" /> 
          </td> 
          <td> 
           <asp:Label ID="lbl" runat="server"></asp:Label> 
          </td> 
         </tr> 
         <tr id="trAddOnFee" runat="server" class="SomeClass" style="display: none;"> 
          <td colspan="2"> 
           <table cellpadding="4" cellspacing="2" width="100%"> 
            <tr> 
             <td class="DgHeader">A</td> 
             <td class="DgHeader">B</td> 
            </tr> 
            <asp:Repeater ID="repeatRepetitives" runat="server"> 
             <ItemTemplate> 
              <tr> 
               <td> 
                <asp:Label ID="lblA" runat="server"></asp:Label> 
               </td> 
               <td align="right"> 
                <asp:Label ID="lblB" runat="server"></asp:Label> 
               </td> 
              </tr> 
             </ItemTemplate> 
            </asp:Repeater> 
           </table> 
          </td> 
         </tr> 
        </ItemTemplate> 
       </asp:Repeater> 
      </table> 

Wie konnte ich die Zeilen mit Klasse als „Someclass“ innen auf Klick auf imgToggleHomeInfo“Bild auf seiner Eltemzeile mit JQuery wechseln?

Antwort

1

Ich würde finden die Elternzeile des Bildes dann Toggle es beim nächsten Geschwister

$(document).ready(function() { 
    $("[id$='imageToggleHomeInfo']").click(function() { 
     $(this).closest('tr').next().toggle(); 
    }); 
}) 
+0

$ (this) .parent ('tr') next() umschalten(); nicht funktioniert Aber das funktioniert:.... $ (this) .parent(). parent(). next(). toggle(); –

+0

Parent muss nur den unmittelbaren Elternteil suchen. Das übergeordnete(). Parent() - Objekt ist in Ordnung, aber Sie können möglicherweise die eltern() -Methode verwenden, um alle Vorfahren des Elements zu betrachten. Dies würde davon abhängen, dass diese Tabelle nicht in einer anderen Tabelle enthalten ist. Wenn dies der Fall ist, müssen Sie möglicherweise "tr: ​​last" verwenden. – tvanfosson

+0

+1 - wenn Sie dies aktualisieren können, um '.closes ('tr')' zu verwenden, merke ich, dass es zur Zeit der Antwort nicht verfügbar war, aber es wäre für zukünftige Googler nützlich :) –

Verwandte Themen