smykenMedlem sedan feb. 200336 inlägg Läget är följande: jag använder mig av asp.nets master-pagekoncept. Det innebär att jag har en mastersida med (bla) min menydiv och till denna mastersida ärvs/länkas övriga sidor in. Dessa sidor innehåller bara innehåll, inga head, title eller body-taggar.
Nu vill jag i menyn kunna "highlighta" den länk som besökaren valt och alltså befinner sig på. Vanligtvis, när man har en meny som en include-fil gör man detta på så sätt att varje länk ges ett unikt id samt kopplar ett id till respektives sidas body-tagg och styr detta med css. Nu har ju jag inga body-taggar så frågan är hur jag gör då?
Enklare förklarat: jag vill alltså ge den valda sidans länk en speciell formatering...
Läste att man via asp.net kan "inserta" classer till, exempelvis <li> taggar, till den aktuella sidans länk och på så sätt lösa problemet. Men jag har googlat som tusan men inte hittat vad jag söker. Har någon något tips på hur jag kan göra? :q
emissionMedlem sedan dec. 19996 721 inlägg Det finns många lösningar. Du kan bl.a. använda de inbyggda Navigation-kontrollerna, med SiteMapDataSource, som bygger upp meny från en xml-fil eller från databas.
En lösning som påminner om det du var van vid är att låta varje sida implementera ett interface.
public interface IPageWithId
{
string PageId{get;}
}
public partial class MyPage: System.Web.UI.Page , IPageWithId
{
public string PageId
{
get { return "MyPage"; }
}
}
Då kan du i Master-sidans Page_Load ta reda på id:t på sidan som visas
IPageWithId page=this.Page as IPageWithId;
if (page!=null)
{
SetActiveMenu(page.PageId);
}
smykenMedlem sedan feb. 200336 inlägg Tack för ett snabbt svar.
Jag ska kolla upp hur de inbyggda nav-kontrollerna fungerar (är det något nytt i o med 2.0?).
Din lösning verkar vara åt det hållet jag söker. Finns den metoden beskrivet mer utförligt någonstans eller skrev du ihop det för stunden? Tror jag behöver mer kött på benen innan jag kan sy ihop det....