2008-11-26 5 views
0

Je tente de créer un menu à partir d'une table en utilisant le menu CSS de Suckerfish et Jquery. J'utilise ceci comme ma référence: Suckerfish menu with ASP.NET and JQuery et je l'ai fonctionné avec des liens fournis manuellement (un peu comme dans l'article). En cas de problème, j'écris la fonction récursive pour obtenir les éléments de menu de la base de données et créer les nouveaux éléments de menu dans la hiérarchie appropriée. Ma table de base de données ressemble donc:Création d'un menu piloté par base de données avec ASP.NET, JQuery et Suckerfish

Table Menu


MenuID ParentID Lien Texte

L'idée étant que si un élément est un élément de niveau parent le MenuID et ParentID sont les De même, si c'est un enfant, il aura le MenuID de son parent dans le champ ParentID. Je besoin de créer une fonction qui peut passer et trouver tous les enfants pour les parents (peut-être quelques niveaux) et avoir remplacer les entrées manuelles comme ceci:

 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)) 

Je suis ouvert à l'évolution la structure de la table de la base de données si nécessaire et, fondamentalement, faire autre chose pour que cela fonctionne.

Merci pour toute contribution, c'est très apprécié.

+0

Quelle base de données utilisez-vous? Différents fournisseurs ont des extensions différentes qui peuvent aider à résoudre votre problème. – Min

Répondre

2

Cette méthode de représentation de données hiérarchiques est facile à comprendre pour les humains mais difficile à extraire, car elle nécessite une récursivité pour extraire la hiérarchie complète. Certaines versions de SQL ont des commandes qui le feront pour vous, mais c'est ce qui se passe dans les coulisses.

Je vous suggère de lire More Trees & Hierarchies in SQL, et de restructurer votre schéma en utilisant la méthode de chemin matérialisé qu'il explique. Il est facile d'interroger et de mettre à l'échelle très bien.

+0

Merci OrbMan, je profite de l'article. J'aime ce que vous avez mentionné au début de votre réponse, c'est que c'est facile à comprendre mais difficile à mettre en œuvre - ça a toujours été mon expérience. Cheers. –

Questions connexes