Aufbau eines dynmaischen Baums
Mike File
- dhtml
Hallo
Ich möchte in einer Webseite einen Navigationsbaum ähnlich zu Windows Explorer aufbauen. Die Sohnknoten eines Knotens werden dabei dynmisch ermittelt (aus einer Datenbank), sind also am Anfang nicht bekannt. Optimal wäre, wenn die Seite, die den Baum enthält, nicht nach jedem Blättern komplett neu aufgebaut wird, sondern nur die neuen Knoten dynamisch eingefügt werden.
Frage:
1. Was ist die beste Methode ein sauberes Layout für den Baum aufzubauen (unsichbare Tabelle? absolute Koordinaten?)
2. Was die die beste Methode den Baum dynmamisch zu manipulieren, also Knoten einzufügen/zu löschen.
Es soll MS IE >= 5.0, Netscape >= 6.0 unterstützt werden.
Any ideas?
Danke+Gruss
Mike File
Hi,
schau mal unter:
http://www.jrp.at/home/index.asp
Da gibt es ganz verschiedene Ansätze. Ich habe mal eine Leiste eingesetzt die das mit Tabellen gelöst hat.
Zur Baumstruktur: ein mehr-dimensionales Array wäre, glaube ich, ziemlich aufwendig, eine Pointer-Struktur würde dar eher funktionieren.
Gruß
Benjamin
Hallo,
Ich möchte in einer Webseite einen Navigationsbaum ähnlich zu Windows Explorer aufbauen. Die Sohnknoten eines Knotens werden dabei dynmisch ermittelt (aus einer Datenbank), sind also am Anfang nicht bekannt.
Es müssen bei der Übertragung vom Server auf den Client _alle_ Knoten bekannt sein, die angezeigt werden.
Optimal wäre, wenn die Seite, die den Baum enthält, nicht nach jedem Blättern komplett neu aufgebaut wird, sondern nur die neuen Knoten dynamisch eingefügt werden.
Wenn das so ist, dann brauchst Du JavaScript und DOM. Dann müssen zusätzlich noch _komplett alle_ Knoten bekannt sein, sobald die Seite _übertragen_ wird.
Frage:
- Was ist die beste Methode ein sauberes Layout für den Baum aufzubauen (unsichbare Tabelle? absolute Koordinaten?)
relativ positionierte <div>s, die Du mit display: block/none ein/ausblendest. Dann kannst Du am Anfang alle Anzeigen lassen und im <body> beim onLoad die ausblenden, die am Anfang nicht angezeigt werden sollen. So wahrst Du Kompabilität zu nicht-JS-Browsern und Browsern, die display: none; nicht kapieren (die bekommen halt den immer vollen Baum angezeigt, aber alles ist noch voll funktionsfähig)
- Was die die beste Methode den Baum dynmamisch zu manipulieren, also Knoten einzufügen/zu löschen.
display: block/none; Komplett dynamisch kannst Du es sowieso nicht machen, da das ganze ja Client<->Server ist.
Es soll MS IE >= 5.0, Netscape >= 6.0 unterstützt werden.
Mit der o.g. Methode werden _alle_ Browser unterstützt (zumindest bleibt die Navigation für _alle_ Browser erhalten).
Grüße,
Christian