Настройка управления меню ASP.NET в виде мегавыпадающего списка

Платформа:
Разработка веб-сайтов на ASP.NET 4.0 (веб-формы) с C#.

Ситуация:
Мой визуализированный элемент меню ASP.NET расположен горизонтально и имеет три уровня данных. И я установил StaticDisplayLevels="1", чтобы меню отображало данные уровня 1 по горизонтали и при наведении курсора на уровень 1, меню отображало данные уровня 2 и при наведении курсора на уровень 2, меню отображало данные уровня 3.

Требование:
отображать данные уровня 2 и уровня 3 в одном списке, при этом дочерние элементы первого уровня 2 (если есть) отображаются под данными первого уровня 2. Затем идет второй уровень2 и его дети (если есть) и так далее.

Хотите отображение, подобное первому. Элемент управления меню ASP.NET отображает что-то вроде второгоРассмотрите изображение выше. То, что я хотел бы иметь, это дисплей, как тот, что слева. Но элемент управления меню ASP.NET отображает его, как изображение справа.

Я искал решение в сети вверх и вниз. Я даже пробовал заменить разметка сгенерированного элемента управления asp.net с использованием события DataBound меню, а затем внедрение в него взлома javascript. Мне это удалось, но ему не хватает возможности повторного использования.

Я хотел бы иметь способ реализации многократно используемого элемента управления меню ASP.NET со статическим уровнем 2 (и уровнем 3) после динамического уровня 1, который действует как мегараскрывающийся список. Я уверен, что должен быть путь и что я иду неверным путем. Любые идеи?


person naveen    schedule 28.02.2011    source источник


Ответы (2)


Вы должны установить уровень отображения меню в меню управления на 3. Пожалуйста, проверьте это

MaximumDynamicDisplayLevels="3"

<asp:Menu ID="Menu1" runat="server" StaticDisplayLevels="1" 
MaximumDynamicDisplayLevels="3" DataSourceID="SiteMapDataSource1" 
Orientation="Horizontal" OnDataBound="Menu1_DataBound">
</asp:Menu>
person Bhavik Goyal    schedule 28.02.2011
comment
то, что я хочу, это меню, такое как динамический уровень 1, статический уровень 2 и так далее. кажется, что если достигнут динамический уровень, его дочерний уровень не может быть статическим. - person naveen; 28.02.2011
comment
который не поддерживается элементом управления меню ASP.NET, для этого вам необходимо создать собственный настраиваемый элемент управления. а затем примените другой CSS, как хотите. - person Bhavik Goyal; 28.02.2011
comment
я знаю бхавик. вот почему я пришел за помощью. Если вы проверили ссылку в моем посте, вы знаете, насколько глубоко я углубился в проблему. я не размещаю вопросы в SO без исследования. - person naveen; 28.02.2011

Простых решений не нашел.

Обходным путем было превращение иерархической карты сайта в таблицу с родительским идентификатором для родительского xml и 0, если нет родителя. Затем я программно создал asp:Menu в коде из этих данных.

person naveen    schedule 14.03.2011