Avatar billede mach3 Nybegynder
27. juni 2005 - 11:27 Der er 10 kommentarer og
1 løsning

Se hvilken side man er på?

Hej,

Jeg har en webapplikation, hvor der er en menu til venstre side. Man kan så klikke sig rundt til de forskellige side vha denne menu.

Men jeg vil gerne have, at menuen skal afspejle, hvilken side man har klikket på. Det kunne eksempelvis være ved at menupunktet bliver understreget eller med fed tekst eller noget helt tredje.

Hvordan kan man lave det?
Avatar billede hells Nybegynder
27. juni 2005 - 13:43 #1
Du kan gøre det, at du kan generere menuen ved hjælp af et array på serveren og samtidigt undersøge for hvert menupunkt, om det fører til den side, man er på.

Det her bliver et eksempel i gammeldags asp, da jeg ikke rigtigt har noget kendskab til asp.net, men det må nemt kunne overføres til asp.net:

'Array med absolutte virtuelle addresser til de forskellige sider og linktekst til dem adskilt med |:
sider = Array("/side1.aspx|Side 1","/side2.aspx|Side 2","/mappe1/side1.aspx|Et tredje link")

'virtuel sti til siden, man er på nu:
vsti = Request.ServerVariables("PATH_INFO")

'udskriv menupunkterne ved hjælp af en løkke:
For i = 0 to UBound(sider)

    'vi laver et nyt array, så vi kan læse adressen og linkteksten for sig:
    side = Split(sider(i), "|")
    Response.Write "<a href=""" & side(0)
    'hvis adressen er den samme som til den side, man befinder sig på, så understreger vi teksten:
    If side(0) = vsti Then
        Response.Write """ style=""text-decoration: underline;"">"
    Else
        Response.Write """>"
    EndIf
    'udskriv linktekst:
    Response.Write side(1) & "</a>"

Next
Avatar billede mach3 Nybegynder
27. juni 2005 - 18:06 #2
Ok mange tak for det. Jeg er ikke lige ved computeren nu, så jeg kigger på det senere.

I mellemtiden er andre meget velkomne til at komme med specifikke asp.net forslag.

Mvh
Avatar billede burningice Nybegynder
27. juni 2005 - 18:47 #3
det kommer jo helt an på hvordan at din menu er genereret... hvis det er med f.eks. en repeater kan du abbonnere på ItemDataBound-eventen og undersøge om menupunktet skal understreges. Men i store træk er teknikken den hells har beskrevet, nemlig at man bruger en form for løkke til at skrive sine punkter ud og i denne løkker tjekker man også om punktet skal understreges.
Avatar billede mach3 Nybegynder
27. juni 2005 - 22:13 #4
Min menu er en usercontrol (ascx) som bliver added på venstre side af alle sider.
Avatar billede burningice Nybegynder
27. juni 2005 - 22:52 #5
men... er dine punkter hardcodet, eller bliver de suget fra en database eller lign?
Avatar billede mach3 Nybegynder
27. juni 2005 - 22:58 #6
Der er hardcodet i usercontrollen. Jeg har ca 10 menupunkter.
Avatar billede burningice Nybegynder
27. juni 2005 - 23:08 #7
well... du kunne gøre sådan her:

public class MenuPunkt : System.Web.UI.WebControls.HyperLink {
  protected override RenderBeginTag(HtmlTextWriter writer) {
      if (HttpContext.Current.Request.RawUrl == this.NavigateUrl)
          this.Style.Add("text-decoration", "underline");

      base.RenderBeginTag(writer);
  }
}

compiler den til en dll og brug den så på din usercontrol:

<%@ Tag Register Prefix="mach3" Assembly="dinDllFil"" %>

<mach3:MenuPunkt Text="Forside" NavigateUrl="default.aspx" id="forside" runat="server" /><br />
<mach3:MenuPunkt Text="Mig" NavigateUrl="mig.aspx" id="mig" runat="server" /><br />
<mach3:MenuPunkt Text="Links" NavigateUrl="links.aspx" id="links" runat="server" /><br />
Avatar billede mach3 Nybegynder
28. juni 2005 - 08:01 #8
Tak for det.
Jeg kan først teste det i morgen, så jeg melder tilbage der.
Avatar billede mach3 Nybegynder
08. august 2005 - 22:06 #9
Hej,

Jeg vil bare gerne lige sige, at jeg ikke har glemt dette spørgsmål. Jeg har været på andre opgaver det sidste stykke tid.

Så det er noget, som jeg kigger på om ikke så længe.

Men hvis i har mistet tålmodigheden så bare smid et svar - så lukker vi den.

Mvh
Avatar billede burningice Nybegynder
16. august 2005 - 13:05 #10
svar
Avatar billede mach3 Nybegynder
15. juni 2007 - 21:12 #11
Tak for hjælpen. Beklager det sene 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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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