是否可以使用带有jQuery
Superfish菜单的
ASP.NET web.sitemap?
如果没有,是否有与基于web.sitemap文件一起使用的基于标准的浏览器不可知插件?
解决方法
我在寻找同样的答案时发现了这个问题,每个人都说可能,但没有人给出实际的解决方案!我似乎有工作现在,所以以为我会发布我的发现…
我需要的东西
> Superfish还包括jQuery版本
> CSS Friendly Control Adaptors下载DLL和.browsers文件(分别放入/ bin和/ App_browsers文件夹)
> ASP.NET SiteMap(web.config中的.sitemap XML文件和siteMap提供程序条目)
我完成的Masterpage.master有以下头标:
<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菜单所需的所有东西。页面内部(菜单出现)看起来像这样(基于these instructions):
<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>标签获取类=“AspNet-Menu”。我以为这行$(‘ul.AspNet-Menu’)。会帮助,但没有。
还有一件事
虽然这是一个黑客(请有人指出我正确的解决方案),我可以通过打开superfish.css文件,并用AspNet菜单搜索和替换sf菜单…并瞧瞧!菜单出现了。我以为在asp:菜单控件中会有一些配置设置,我可以设置< ul>类,但没有通过谷歌找到任何提示。