Создание меню на основе базы данных с ASP.NET, JQuery и Suckerfish - PullRequest
0 голосов
/ 26 ноября 2008

Я пытаюсь создать меню из таблицы, используя меню Suckerfish css и Jquery. Я использую это в качестве справочного материала: Меню Suckerfish с ASP.NET и JQuery , и оно работает с предоставленными вручную ссылками (очень похоже на статью).

У меня проблемы с написанием рекурсивной функции для получения пунктов меню из базы данных и создания новых пунктов меню в правильной иерархии. Моя таблица базы данных выглядит так:

Меню стола


MenuID ParentID Ссылка на сайт Текст

Идея состоит в том, что если элемент является элементом родительского уровня, MenuID и ParentID одинаковы, то, если это дочерний элемент, он будет иметь MenuID своего родителя в поле ParentID. Мне нужно создать функцию, которая может пройти и найти всех детей для родителей (может быть несколько уровней) и заменить ее ручными записями, например так:

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

Я открыт для изменения структуры таблицы базы данных, если это необходимо, и в основном для того, чтобы все это сделать.

Спасибо за любой вклад, это очень ценится.

1 Ответ

2 голосов
/ 26 ноября 2008

Этот метод представления иерархических данных легок для понимания людьми, но сложен для извлечения данных, потому что он требует рекурсии для извлечения полной иерархии. В некоторых разновидностях SQL есть команды, которые сделают это за вас, но это происходит за кулисами.

Я предлагаю вам прочитать Больше деревьев и иерархий в SQL и реструктурировать вашу схему, используя метод материализованного пути, который она объясняет. Это легко сделать запрос и очень хорошо масштабируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...