是否有可能使用ASP.NET web.sitemap中有jQuery的快鱼菜单?
如果没有,是否有任何标准的基于浏览器的插件无关可用Web.sitemap文件的工作?
是否有可能使用ASP.NET web.sitemap中有jQuery的快鱼菜单?
如果没有,是否有任何标准的基于浏览器的插件无关可用Web.sitemap文件的工作?
我发现这个问题,同时寻找相同的答案......大家说,这是可能的,但没有一个人给出了实际的解决方案! 我似乎现在工作,所以想我会后我发现...
事情我需要:
快鱼其中还包括一个版本的jQuery
CSS友好控制适配器下载DLL和.browsers文件(在/ bin和/ App_Browsers文件分别文件夹)
ASP.NET站点地图 (一个.sitemap XML文件和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的快鱼菜单工作的所有东西。 里面的页面(如菜单进入)看起来像这样(基于这些说明 ):
<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
文件和搜索,并与ASPNET菜单 ......瞧更换 SF-菜单 ! 菜单出现。 我以为会有一些配置中设置asp:Menu
控制,我可以设置<ul>
类,但没有发现通过谷歌的任何提示。
是的,这是完全可能的。
我已经与ASP中使用它:菜单控制和jQuery与快鱼插件1.2.6。 请注意,您需要在ASP.NET 2.0 CSS友好控制适配器 。
ASP.NET生成ASP:菜单控制作为表的布局。 CSS的友好控制适配器将使ASP.NET生成ASP:菜单控件作为一个div内的UL / LI布局。
这将允许轻松集成了jQuery和快鱼插件,因为插件快鱼依赖于UL / LI布局。
它看起来像你需要生成一个UL的快鱼。 您应该能够从您的网站地图与ASP.Net做到这一点。 我认为网站地图控件会做这样的事情。 如果不是,它应该是相当琐碎直接从C#调用站点地图和编程方式生成的DOM。 你可以建立一个用户控件来做到这一点,或做它在母版页。
看看这个MSDN文章就如何以编程方式枚举的节点在您的网站地图。
记得添加CSS类NonLink元素。 快鱼CSS元素不acccont他们。 如果你和我一样,有根菜单的不属于链接,那么它呈现可怕的。 只需添加ASPNET菜单 - NonLink元素的superfish.css文件,它应该呈现的罚款。
SiteMapDataSource控件应该能够绑定到绑定控件任何分层数据。 我不熟悉的快鱼,但我知道有很多jQueryish的控制都来做到这一点。
我创造了你可以使用一个整洁的小样本项目http://simplesitemenu.codeplex.com/
这是一个复合控件生成Sitemap中嵌套的UL / LI上市。
请享用!