Заполнение меню из базы данных

2

Мне нужно заполнить элемент управления ASP.NET иерархической структурой элементами меню, которые можно постоянно изменять из базы данных (категории с n уровнями подкатегорий).

Есть несколько подходов к этому, и я хотел бы услышать, какой из них наиболее эффективен.

Я имею в виду:

  • Извлечение данных из базы данных и преобразование их в xml, а затем преобразование их с помощью настраиваемого файла XSLT и привязка его к элементу управления меню
  • Извлечение данных из базы данных и циклическое (рекурсивное) вложение элементов меню и дочерних элементов в элемент управления меню
  • Поставщик карты сайта SQL (благодаря Made4Print)
  • Что-то еще?
Теги:
sql-server

3 ответа

3
Лучший ответ

Элемент управления ASP.NET может использовать файл .SiteMap через SiteMapDataSource.

Вы можете реализовать свой собственный SiteMapProvider, таким образом вы можете иметь свою иерархию SiteMap в своей базе данных и подключать те же компоненты, что делает вещи более динамичными.

Вот пример: http://weblogs.asp.net/scottgu/archive/2006/01/11/435108.aspx

НТН

  • 0
    Это тоже вариант. Не знаю, что лучше :(
  • 0
    Я думаю, что лучше всего попробовать одно решение и посмотреть, работает ли оно к вашему удовлетворению, а если нет, или если у вас достаточно времени, попробуйте второе и сравните результаты; объем работы по созданию и поддержанию структур меню, а также поведение во время выполнения
Показать ещё 2 комментария
1

Я согласен с Марком. Затем вы можете упаковать все внутри серверного элемента управления для повторного использования. Преобразование всего в XML, а затем использование XSLT, чтобы каким-то образом "преобразовать" его обратно, мне кажется накладными.

1

Если вы хотите сделать это, я определенно рекомендую вариант 2, так как он содержит один уровень преобразования меньше, чем вариант 1. Если вы уже обходите элементы меню и их переходы, вы можете также создать пункты меню и subitems напрямую - я не вижу большой пользы от того, чтобы обход вокруг XML, а затем через XSLT в структуру меню, действительно.

Марк

PS: Вариант 3 (поставщик Sitemap для SQL) также звучит как действительно хорошая идея, если структура и параметры карты сайта достаточно хороши для вас (они обычно должны быть). Я бы, наверное, сначала попробовал этот вариант и пошел оттуда.

  • 0
    Мое единственное беспокойство - эффективность, пункты меню могут постоянно изменяться. Элементы меню удаляются или перемещаются (вместе с детьми) между родителями и т. Д. Так что для этого потребуется перестроить структуру меню.
  • 0
    Да, конечно - но это также верно, если вы сначала преобразуете измененную структуру в XML и используете XSLT в фактическую структуру меню - я не думаю, что вы выиграете, пройдя этот путь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню