Ответ 1
Я нашел этот вопрос, ища тот же ответ... все говорят, что это возможно, но никто не дает реального решения! Кажется, у меня сейчас работает, поэтому я решил опубликовать свои выводы...
Что мне нужно:
-
CSS Friendly Control Adapters скачать DLL и .browsers файл (в/bin и /App _Browsers папки соответственно)
-
ASP.NET SiteMap (XML файл .sitemap и запись поставщика
siteMap
в web.config)
Мой завершенный 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-menu на AspNet-Menu... и вуаля! появилось меню. Я думал, что в элементе управления asp:Menu
будет определен какой-то параметр конфигурации, где я мог бы установить класс <ul>
, но не нашел никаких подсказок через google.