Avatar billede Martin1982 Nybegynder
03. februar 2011 - 14:49 Der er 5 kommentarer og
1 løsning

Active link på left menu

Hvordan sættes et menupunkt i "aktive state" med f.eks. en anden farve i ASP.NET.

Jeg bruger Master Pages og content page til sitet.

Har forsøgt med:

#menu li a.current, #menu li a:hover.current, #menu li a:active
    {
        background:url(images/menu_024_h.jpg) no-repeat;
        color:#8b93ab;   
    }

min content page ser sådan ud:
<asp:Content ID="Content2" ContentPlaceHolderID="LeftContent" runat="server">
    <div id="menu">
<ul>
    <li id="Li1"><a href="test">test</a></li>
    <li id="Li2"><a href="test2">test2</a></li>

  </ul>
  </div>
</asp:Content>
Avatar billede keysersoze Guru
03. februar 2011 - 17:59 #1
Du er nødt til at gøre det manuelt i fx din page_load - jeg kender ikke din linkstruktur, men du kan formentlig bare aflæse querystrings eller Url og sætte den valgte li til at have en anden klasse, det kræver dog at du sætter runat="server" på de elementer du vil kunne fange. lidt pseudo-kode;

if (Request.Querystring("id") == 2)
{
  ditelement.attributes.add("class", "aktivklasse");
}
Avatar billede Martin1982 Nybegynder
03. februar 2011 - 18:05 #2
Synes det ser mindre kønt ud at skulle poste id'er hver gang, så havde håbet der var en anden løsning :-)
Avatar billede Martin1982 Nybegynder
03. februar 2011 - 18:22 #3
aspx side
<asp:Content ID="Content2" ContentPlaceHolderID="LeftContent" runat="server">
    <div id="menu">
<ul>
    <li runat="server" id="Li5"><a href="test.aspx">test</a></li>
  </ul>
  </div>
</asp:Content>


Code behind
Li5.Attributes.Add("Class", "test");

CSS
    .test
    {
        color:White;
    }

Burde det ikke virke ?
Avatar billede keysersoze Guru
03. februar 2011 - 19:24 #4
Der er masser af andre muligheder, fx aflæsning af URL'en som jeg også skrev (Request.Url). Det er nok nærmere klassen på dit link og ikke din li du skal skifte - så det er dit link der skal have en runat="server" på sig eller også skal du skifte til at benytte Hyperlink-kontrollen.

Når du manuelt sidder og laver din menu må du også lave lidt manuelt arbejde - optimalt set skulle det hele foregå automatisk, fx ved at du lavede en class, der aflæste menustrukturen i fx en XML-fil og mens klassen dannede den nødvendige HTML kiggede den samtidig på hvilket menupunkt der skulle markeres. Måske kunne en færdig kontrol også klare det for dig.
Avatar billede Martin1982 Nybegynder
05. februar 2011 - 16:21 #5
Selvom det ikke er kønt placerede jeg en class på hver side, som viser at linket er aktivt.

@Keysersoze smid et svar
Avatar billede keysersoze Guru
05. februar 2011 - 19:00 #6
svar :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester