Der Aufbau einer Datenbank driven-Menü mit ASP.NET, JQuery und Suckerfish
Ich versuche, zu erstellen Sie ein Menü aus einer Tabelle mit dem Suckerfish css-Menü und Jquery. Ich benutze dies als meine Referenz: Suckerfish-Menü mit ASP.NET und JQuery und ich habe es die Arbeit mit manuell gelieferten links (ähnlich wie im Artikel).
Wo habe ich Probleme, ist das schreiben der rekursiven Funktion, um die Menüpunkte aus der Datenbank und erstellen Sie die neue Menüpunkte in die richtige Hierarchie. Meine Datenbank-Tabelle sieht so aus:
Menü Tabelle
MenuID
ParentID"
Link
Text
Die Idee ist, dass, wenn ein Element einer übergeordneten Element die MenuID und ParentID, sind die gleichen, wenn es ein Kind wird, müssen die MenuID der Eltern in die ParentID-Feld. Ich bin benötigen, um eine Funktion erstellen, können Sie gehen Sie durch und finden Sie alle, die Kinder für die Eltern (das kann ein paar Stufen) und haben es ersetzt manuelle Einträge wie diese:
Dim Foo As New MenuItem("#", "Foo", Me)
Items.Add(Foo)
Foo.Items.Add(New MenuItem("#", "1", Me))
Foo.Items.Add(New MenuItem("#", "2", Me))
Foo.Items.Add(New MenuItem("#", "3", Me))
Foo.Items.Add(New MenuItem("#", "4", Me))
Ich bin offen für die änderung der Datenbank-Tabelle Struktur, wenn notwendig, und im Grunde etwas anderes zu tun, um dies zu gehen.
Vielen Dank für jede Eingabe, es ist viel geschätzt.
- Welche Datenbank verwenden Sie? Verschiedene Anbieter haben verschiedene Erweiterungen, die helfen können, Ihr problem zu lösen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dass die Art der Darstellung von hierarchischen Daten ist leicht zu verstehen für den Menschen, aber schwierig, Daten zu extrahieren, denn es benötigt die Rekursion extrahiert die vollständige Hierarchie. Einige Varianten von SQL-Befehlen, die dies für Sie tun, aber das ist, was Los ist hinter den kulissen.
Ich schlage vor, Sie Lesen Mehr Bäume & Hierarchien in SQL, und strukturieren Sie Ihre Schemas mit der materialized path-Methode, die es erklärt. Es ist einfach zu Abfrage und Waage wirklich gut.