我正在尝试使用.sitemap文件在我的网站中构建菜单;但是我对输出有很多问题。
首先,表输出不好 - 我下载了'CSSFriendly'DLL(http://www.codeplex.com/cssfriendly)..这现在输出ul和li的输出..
但我希望菜单中没有javascript或css,一次弹出一个等级。
我认为开始使用StaticDisplayLevels会解决这个问题,但它似乎忽略它并只输出第一级,然后我必须将鼠标移过来获取更多菜单选项..
我认为长期和短期是:人们是否应该清除菜单控件并自己编写标记?如果没有,这不是一条可怕的路线 - 我怎么能摆脱所有的格式和鼠标滑过爵士......我只想要一个完整的菜单,水平显示(我可以用我的CSS做到这一点)。< / p>
感谢您提供任何帮助,如果这个问题看起来很乱(沮丧),也会道歉。 皮特
答案 0 :(得分:2)
我的经验是,ASP.net菜单可以被驯服,并且没有最初出现时那么糟糕。
(我试图为你的静态显示级别问题找到一些代码,但目前无法访问我的SVN存储库。但是我遇到了同样的问题并且很容易修复。)
当然,MS菜单永远不会像你自己用HTML编写的那样整洁,但是如果你不想花太多时间而且想要使用所有的SiteMapProvider东西,那就太棒了。
只是不要陷入“MS提供的所有东西都是垃圾我必须写自己的陷阱”,因为它真的不是那么糟糕。
答案 1 :(得分:2)
皮特,
我挖出了一些使用asp.net菜单控件的旧代码。那里几乎没有,将StaticDisplayLevels设置为2,将Orientation设置为“Horizontal”使得一切正常。大多数工作都在为它设置外观(如果某些网址仅通过查询字符串而有一些黑客突出显示当前位置)。
但是,切换到使用CSS友好适配器,我得到你描述的完全相同的问题(只显示根项目,不能水平渲染)。
让我想知道CSS友好的菜单适配器是否坏了?旧版本的代码http://www.asp.net/CSSAdapters/Menu.aspx
有一些工作示例克里斯
答案 2 :(得分:1)
peteski22,
我最近在 jQuery Menu and ASP.Net Sitemap 上回答了类似的问题。我在这里再次总结一下:
基本上我将<asp:Menu>
控件与 .sitemap 文件一起使用,添加了CSSFriendly.DLL
和CSSFriendlyAdapters.browser
个文件(所有这些都已完成)以获取菜单呈现为<ul><li>
s ...
然后
...在superfish.css
中下载/添加Superfish with jQuery(。js和.css文件)和搜索并替换以更改'默认'Superfish样式Menu控件呈现的那个(例如sf-menu
→AspNet-Menu
)。
jQuery非常酷 - 而'recommended' by Microsoft。
您可以在conceptdevelopment.net'查看来源'以查看其有效...或 download an example project 以及您需要的所有文件。
(我仍在试图弄清楚如何更改菜单的默认类,而不是搜索和替换黑客)
答案 3 :(得分:1)