Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Visa/Dölj underkategorier till trädmeny

Postades av 2006-06-07 12:46:30 - Johan Moberg, i forum asp - allmänt, Tråden har 0 Kommentarer och lästs av 907 personer

Hej

Jag har en trädmeny som jag har tänkt använda till en produktkatalog. Menyn hämtar information från en Access databas och skriver ut den som en ul lista. Allt ser bra ut och den fungerar kanon bortsätt från mitt problem, som är att hela trädet visas. Jag skulle alltså vilja att trädet från början är kollapsad och när man klickar på en kategori så visas alla underkategorier osv.

Jag har hittat ett JavaScript som gör detta, men problemet med de scriptet är att kategorier som har underkategorier inte har en vanlig länk, vilket ställer till det då jag hämtar produkter med länken list.asp?catid= så om det finns produkter under den kategorin kommer de inte att visas. Ett annat problem med detta script är att när man skickas vidare till sidan list.asp så är trädet kollapsad igen.

Det är inget krav att använda detta JavaScript, eller JavaScript överhuvudtaget för den delen, utan de går lika bra med asp och Request.Querystring eller liknande.

Någon som har ett förslag på hur jag skulle kunna göra?

Min kod för att skriva ut menyn ser ut enligt följande:

<code>
'Öppnar databasen
Call dbOpen(Connect)

intSpace = 0

Sub PrintTree(intParent)
strSQL = "Select * From t_categories Where parentID="& intParent &" And active=True Order By sorting asc"
Set objCategories = Connect.Execute(strSQL)

Response.Write(Space(intSpace * 2) & "<ul>" & vbCrLf)
intSpace = intSpace + 1

Do Until objCategories.EOF
strSQL = "Select parentID From t_categories Where parentID = "& objCategories(0)
Set objNode = Connect.Execute(strSQL)

If Not objNode.EOF Then
Response.Write(Space(intSpace * 2) & "<li>"& objCategories(2) &"" & vbCrLf)
intSpace = intSpace + 1
PrintTree objNode(0)
Else
Response.Write(Space(intSpace * 2) & "<li>" & objCategories(2) & "</li>" & vbCrLf)
End If

objNode.Close : Set objNode = Nothing
objCategories.MoveNext
Loop

objCategories.Close : Set objCategories = Nothing
intSpace = intSpace - 1

If intSpace = 0 Then
Response.Write("</ul>" & vbCrLf)
Else
Response.Write(Space(intSpace * 2) & "</ul>" & vbCrLf & Space((intSpace - 1) * 2) & "</li>" & vbCrLf)
intSpace = intSpace - 1
End If

End Sub

PrintTree 0

Call dbClose(Connect)
</code>

och JavaScriptet ser ut så här:

<code>
var parentLinkIsOpener=1; // whether to use parent link/text as opener, overriding its own link

if(window.attachEvent)window.attachEvent('onload',cm);
else if(window.addEventListener)window.addEventListener('load',cm ,false);

function cm(){
cmId=0;
if(!document.getElementsByTagName)return; // reject non-compliant browsers
a=document.getElementById('sub-nav').getElementsByTagName('UL');
for(i=0;a[i];i++){
if(a[i].getElementsByTagName('UL')){
// a[i] is an object which has a collapsible list in it
b=a[i].childNodes;
for(j=0;b[j];j++){
if(b[j].nodeName=='LI'){
d=b[j].getElementsByTagName('ul');
if(d.length){
c=document.createElement('a');
c.setAttribute('href','javascript:cmSwitch("cm'+(cmId)+'")');
c.setAttribute('id','cm'+(cmId)+'A');
if(parentLinkIsOpener){
// we've chosen to use the parent link as the opener
var e=b[j].innerHTML;
e=e.replace(/(\n|\r)/g,'');
e=e.replace(/(<ul|<UL).*/,'');
e=e.replace(/<[^>]*>/g,'');
c.innerHTML=e;
b[j].replaceChild(c,b[j].childNodes[0]);
}else{
// create a new [+] link as the opener
c.style.display='inline';
c.innerHTML='[+]';
b[j].insertBefore(c,b[j].firstChild);
}
d[0].setAttribute('id','cm'+(cmId++));
d[0].style.display='none';
}
}
}
}
}
}

function cmSwitch(id){
a=document.getElementById(id);
a.style.display=(a.style.display=='block')?'none':'block';
if(parentLinkIsOpener)return;
a=document.getElementById(id+'A');
a.innerHTML=(a.innerHTML=='[+]')?'[-]':'[+]';
}
</code>


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 600
27 953
271 705
4 023
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies