dev.net.ua

Українська Спільнота Розробникiв
 
Ласкаво просимо до dev.net.ua Увійти | Приєднатися | Допомога | Увійти Live ID

Ситуация с навигацией

  •  23-04-2007, 4:13

    Ситуация с навигацией

    Ситуация с навигацией:

    1. На сайте есть меню, базирующееся на SiteMap
    2. На сайте есть меню SiteMapPath
    3. На страницах уровня 3 и глубже в контроле ContentPlaceHolder имеется подменю SiteMap
    4. На страницах уровня 1-2 подменю нет.
    5. Сайт многоязычный, из-за чего ко всем линкам в меню и контролах динамически добавляется указатель культуры "?cl=en-US" или другой по необходимости.

    Проблема возникла из-за  добавления указателя культуры к SiteMapPath.

    Варианты решения и проблемы с ними:

    1. Для события ItemDataBound был написан код, в котором в свойство SiteMapNodeItemEventArgs.Item.SiteMapNode.Url добавлялся указатель культуры. Но почему-то это изменение срабатывает не сразу, т.е. после обновления страницы, либо даже не для всех элементов. В чем прикол?
    2. Как альтернатива первому методу был написан SiteMapResolveEventHandler, в котором производилась операция по добавлению указателя культуры к CurrentNode, а также последовательно к ParentNodes. Принцип был взят из примеров, на которые на всех форумах старательно ссылаются. Все замечательно заработало, за исключением одного: в подменю в ContentPlaceHolder в страницах уровня 3 и глубже стал отображаться только один пункт - текущий. Все остальные просто не появляются. В чем прикол?
    3. До написания SiteMapProvider пока что не дошел. Просто не успел до конца разобраться. Возможно, это лучший вариант. Тогда займусь им. Но хочется разобраться с описанным выше.

    Если всего сказанного недостаточно, могу показать код данных модулей, т.к. ничего секретного там нет.

    Помічено як: , ,
Перегдянути всі повідомлення треда