2016-07-25 26 views
0

Ich versuche, eine dreistufigen linke Navigation für meine Anwendung mit asp.net Repeater und HTML-Liste mit einem Linkbutton innerhalb Wie ändert man die CSS-Klasse der Liste, die in einem Asp-Repeater ist, wenn Sie auf eine ASP-Link-Schaltfläche klicken?

  • Ich habe drei verschachtelte Repeater zu bauen, wenn ich die Linkbutton klicken Sie auf der Liste Klasse aktiv sein soll (Ich habe css für diese aktive Klasse). Ich bin nicht gut in Jquery

    unten ist mein Code (jetzt habe ich nur zwei Repeater), bitte helfen Sie mir, wie kann ich das tun?

    <ul class="nav nav-list mb-xl show-bg-active"> 
     
               <asp:repeater ID="rep1" runat="server" DataSourceID="SqlDataSource1"> 
     
                <ItemTemplate> 
     
                 <li class=""> 
     
                  <asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("Menu") %>'></asp:LinkButton>                      
     
                   <asp:repeater ID="rep2" runat="server" DataSourceID="SqlDataSource1"> 
     
                    <ItemTemplate> 
     
                     <ul> 
     
                     <li> 
     
                       <asp:LinkButton ID="LinkButton2" CommandArgument="id" runat="server" Text='<%# Eval("Menu") %>'></asp:LinkButton>                          
     
                     </li> </ul> 
     
                    </ItemTemplate> 
     
                   </asp:repeater> 
     
                   <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:KTCWEBConnectionString %>" SelectCommand="SELECT NAVIAGATE_1.Menu FROM NAVIAGATE INNER JOIN NAVIAGATE AS NAVIAGATE_1 ON NAVIAGATE.ID = NAVIAGATE_1.ParentID WHERE (NAVIAGATE.Menu = @menu)"> 
     
                    <SelectParameters> 
     
                     <asp:ControlParameter ControlID="LinkButton1" Name="menu" PropertyName="text" /> 
     
                    </SelectParameters> 
     
                   </asp:SqlDataSource> 
     
                 </li> 
     
                </ItemTemplate> 
     
               </asp:repeater> 
     
               <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:KTCWEBConnectionString %>" SelectCommand="SELECT DISTINCT Menu, ParentID, ID FROM NAVIAGATE WHERE (NOT (ParentID IS NULL)) AND (ParentID = 2)"></asp:SqlDataSource> 
     
              </ul>

    Antwort

    0

    So ist es schon eine Weile her, seit ich ASP.Net Kontrollen getan habe, aber ...

    Ihre inneren Listen die Enabled-Eigenschaft auf etwas in Ihrem Controller binden müßten . Wenn dann etwas angeklickt wird, wird diese Bindung auf "falsch" gesetzt. Dies sollte wiederum alle diese Tasten deaktivieren und wenn Ihr CSS richtig geschrieben ist (Tier2: deaktiviert), sollte es richtig aufnehmen.

    Das heißt, wenn dies eine neue Anwendung ist, beenden Sie die Verwendung von ASP.NET-Steuerelementen, sollte es vor langer Zeit getötet worden sein. HTML + CSS + ReactJs oder KnockoutJs ist der Weg, um jetzt zu gehen!

    +0

    Vielen Dank für die Antwort, ich benutze asp.net für meine Anwendung und es ist keine neue Anwendung.Ich erstellte das Menü und funktioniert gut.Aber ich möchte die kleine Sache, die ich möchte, um das gerade angeklickte Element zu aktivieren .Ich denke, es gibt einige Jquery-Skript kann dies tun. – user2513019