Меню jQuery и карта сайта ASP.NET

Можно ли использовать ASP.NET web.sitemap с меню jQuery Суперфиш?

Если нет, доступны ли какие-либо стандартные плагины, не зависящие от браузера, которые работают с файлом web.sitemap?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
20
0
25 213
6
Перейти к ответу Данный вопрос помечен как решенный

Ответы 6

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

Похоже, вам нужно создать UL для Superfish. Вы должны иметь возможность сделать это с помощью ASP.Net на карте вашего сайта. Я думаю, что элемент управления картой сайта будет делать что-то вроде этого. Если нет, вызовите карту сайта непосредственно из C# и сгенерируйте DOM программно. Для этого вы можете создать пользовательский элемент управления или сделать это на главной странице.

Ознакомьтесь с эта статья MSDN о том, как программно перечислить узлы на карте вашего сайта.

Да, это вполне возможно.

Я использовал его с элементом управления ASP: Menu и jQuery 1.2.6 с плагином Superfish. Обратите внимание, вам понадобится Адаптеры управления, поддерживающие CSS ASP.NET 2.0.

ASP.NET создает элемент управления ASP: Menu как макет таблицы. CSS Friendly Control Adapter заставит ASP.NET генерировать элемент управления ASP: Menu как макет UL / LI внутри div.

Это позволит легко интегрировать плагин jQuery и Superfish, поскольку плагин Superfish использует макет UL / LI.

Ответ принят как подходящий

Я нашел этот вопрос, ища тот же ответ ... все говорит это возможно, но никто не дает реального решения! Кажется, теперь он работает, поэтому решил опубликовать свои выводы ...

Вещи, которые мне понадобились:

Мой готовый Masterpage.master имеет следующий тег head:

<head runat = "server">
    <script type = "text/javascript" src = "/script/jquery-1.3.2.min.js"></script>
    <script type = "text/javascript" src = "/script/superfish.js"></script>
    <link href = "~/css/superfish.css" type = "text/css" rel = "stylesheet" media = "screen" runat = "server" />
    <script type = "text/javascript">

        $(document).ready(function() {
        $('ul.AspNet-Menu').superfish();
        }); 

</script>
</head>

Это практически все, что нужно для работы меню jQuery Superfish. Внутри страницы (где идет меню) выглядит так (на основе эти инструкции):

<asp:SiteMapDataSource ID = "SiteMapDataSource" runat = "server"
    ShowStartingNode = "false" />
<asp:Menu ID = "Menu1" runat = "server" 
    DataSourceID = "SiteMapDataSource"
    Orientation = "Horizontal" CssClass = "sf-menu">
</asp:Menu>

Судя по документации, это ДОЛЖНО работать, но это не так. Причина в том, что CssClass = "sf-menu" перезаписывается при отображении меню, а тег <ul> получает class = "AspNet-Menu". Я думал, что линия $('ul.AspNet-Menu').superfish(); поможет, но этого не произошло.

ЕЩЕ КОЕ-ЧТО

Хотя это взлом (и, пожалуйста, укажите мне правильное решение), я смог заставить его работать, открыв файл superfish.css и поиск и заменаSF-меню с помощью AspNet-Меню ... и вуаля! появилось меню. Я думал, что в элементе управления asp:Menu будет какой-то параметр конфигурации, где я мог бы установить класс <ul>, но не нашел никаких подсказок через Google.

Фантастика! Я искал ответ с тех пор, как впервые задал этот вопрос.

NakedBrunch 15.03.2009 18:44

Я загрузил образец проекта со всеми необходимыми файлами сюда conceptdevelopment.net/Fun/Superfish

Conceptdev 21.03.2009 04:47

Что касается классов CSS, вы правы, что они не настраиваются. Имена классов жестко запрограммированы в коде CSSFriendly. Вы можете загрузить исходный код, изменить классы и перестроить библиотеки DLL, если действительно захотите, но я думаю, что ваш способ намного проще.

Jonathan S. 02.07.2009 23:13

Это отлично сработало - одна проблема, с которой я столкнулся, заключалась в том, что изображения стрелок раскрывающегося списка из superfish не отображались. Это связано с тем, что при использовании элемента управления SiteMapDataSource добавляется WebResource.axd, который имеет более высокую специфичность, чем свойства superfish.css. Я не мог понять, как остановить добавление файла WebResource.axd, но вы можете изменить .sf-sub-indicator в superfish.css на «ul.AspNet-Menu .sf-sub-indicator» и затем добавьте к классу "height: 10px! important". Теперь вы должны увидеть изображения. Приветствуются лучшие решения

mawaldne 05.12.2009 01:43

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

Sergey 10.12.2010 08:24

Не забудьте добавить классы css для элементов NonLink. Элементы Superfish css для них не подходят. И если вы похожи на меня, и у вас есть корневое меню, которое не является ссылками, тогда оно выглядит ужасно. Просто добавьте элементы AspNet-Menu-NonLink в файл superfish.css, и он должен отображаться нормально.

Я создал изящный образец проекта, который вы можете использовать на http://simplesitemenu.codeplex.com/.

Это составной элемент управления, который генерирует вложенный список UL / LI из вашей карты сайта.

Наслаждаться!

Другие вопросы по теме