解决方法
我在寻找同样的答案时发现了这个问题,每个人都说可能,但没有人给出实际的解决方案!我似乎有工作现在,所以以为我会发布我的发现…
我需要的东西
> 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>类,但没有通过谷歌找到任何提示。