23. februar 2005 - 13:55Der er
14 kommentarer og 1 løsning
Markering af aktivt menupunkt
Jeg henter nogle hovedmenu-punkter ud fra en access-database. Når man klikker på ét menupunkt, skal det markeres - evt. ved at der sættes en class på/rundt om a href'en - hvordan gør jeg?
(Det skal være ved hjælp af ASP - ikke javascript. Man skal ligeledes kunne komme fra en ekstern side, og alligevel er menupunktet fremhævet - selv om man ikke har klikket internt)
Mit script ser sådan ud:
<% if strParentPageID = "" then strParentPageID = 0 else strParentPageID = Request.QueryString(ParentPageID) End if
'Title = Request.QueryString("MenuText") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort" Set rs = Conn.Execute(SQL)
Response.write "<div class=N1>"
Do While Not rs.EOF Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" Response.write rs("MenuText") Response.write "</a> " rs.MoveNext loop Response.write "</div>" %>
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
Og du trenger ikke å avvise svare før vi har postet ferdig.
Prøv dette.
<% if strParentPageID = "" then strParentPageID = 0 else strParentPageID = Request.QueryString(ParentPageID) End if
'Title = Request.QueryString("MenuText") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort" Set rs = Conn.Execute(SQL)
Response.write "<div class=N1>"
Do While Not rs.EOF 'Hvis id`en strParentPageID er lik PageID fra databasen skal linken gjøres bold. If Cint(strParentPageID) = Cint(rs("PageID")) Then 'Det var samme id vi gjør linken fet. Response.write "<b><a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a> </b>" Else 'ID`ene var ikke like vi lar de være. Response.write "<a href=" & chr(34) & "index.asp?ID=" & rs("PageID") & chr(34) & ">" & rs("MenuText") & "</a> " End if rs.MoveNext loop Response.write "</div>" %>
Vis dette ikke virker prøv å se hva id`\ene skriver ut:
<% if strParentPageID = "" then strParentPageID = 0 else strParentPageID = Request.QueryString(ParentPageID) End if
'Title = Request.QueryString("MenuText") Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentPageID & " ORDER BY PageSort" Set rs = Conn.Execute(SQL)
Response.write "<div class=N1>"
Do While Not rs.EOF 'Skriv ut denne og se om det er noen som er like Response.Write("strParentPageID=" & strParentPageID & "<br>PageID = " & rs("PageID") rs.MoveNext loop Response.write "</div>" %>
Jeg har et lille spørgsmål mere. Hvis man klikker på et undermenupunkt, må hovedpunktet stadig gerne være markeret. Hvordan kan man det? Jeg vil gerne give flere points....
Min kode til undermenuen er dårligt konstrueret og ikke færdig. Jeg inkluderer den på index-siden <!--#INCLUDE FILE="leftmenu.asp"-->. Problemet er, at menupunkterne forsvinder, når man klikker på et af dem, fordi den selecter fra Parent...
<% if Request.QueryString("ID") = "" Then strParentID = 2 else strParentID = Request.QueryString("ID") End if
Set Conn = Server.CreateObject("ADODB.Connection") Conn.Open "DBQ=" & Server.Mappath("pages.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};" SQL = "SELECT * FROM Page WHERE ParentPageID=" & strParentID & " ORDER BY PageSort" Set rs2 = Conn.Execute(SQL) If Not rs2.EOF Then
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.