是否有可能使用帶有jQuery Superfish菜單的ASP.NET web.sitemap?jQuery菜單和ASP.NET網站地圖
如果沒有,是否有任何標準的瀏覽器無關插件可用於web.sitemap文件?
是否有可能使用帶有jQuery Superfish菜單的ASP.NET web.sitemap?jQuery菜單和ASP.NET網站地圖
如果沒有,是否有任何標準的瀏覽器無關插件可用於web.sitemap文件?
我在尋找相同的答案時發現此問題...大家說這是可能的,但沒有人給出實際的解決方案!我似乎現在工作,所以想我會後我發現......
的事情,我需要:
CSS Friendly Control Adaptors下載DLL和.browsers文件(分別位於/ bin和/ App_Browsers文件夾中)
ASP.NET SiteMap(a .sitemap XML file and siteMap
provider e在web.config中n嘗試)
我完成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的快魚菜單工作的所有東西。裏面的頁面(如菜單進入)看起來像這樣(基於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>
,這似乎像它應該工作 - 但事實並非如此。原因是當呈現菜單並且<ul>
標籤獲得class="AspNet-Menu"
時,CssClass="sf-menu"
會被覆蓋。我認爲行$('ul.AspNet-Menu').superfish();
會有所幫助,但它沒有。
一件事
雖然這是一個黑客(並請有人點我到正確的解決方案),我能得到它的工作通過打開superfish.css
文件和搜索和替換SF-菜單與AspNet-Menu ...和瞧!菜單出現了。我認爲在asp:Menu
控件中會有一些配置設置,我可以設置<ul>
類,但沒有通過谷歌找到任何提示。
SiteMapDataSource控件應該能夠綁定到任何分層數據綁定控件。我對superfish並不熟悉,但我知道有很多jQuery控件可以做到這一點。
看起來你需要爲Superfish生成一個UL。你應該可以在你的網站地圖上用ASP.Net來做到這一點。我認爲網站地圖控件會做這樣的事情。如果不是,直接從C#調用站點地圖並以編程方式生成DOM應該是相當簡單的。您可以構建一個用戶控件來執行此操作,或者在母版頁中執行此操作。
檢查出this MSDN article如何以編程方式枚舉您的站點地圖中的節點。
是的,這是完全可能的。
我用它與ASP:Menu控件和jQuery 1.2.6與Superfish插件。請注意,您將需要ASP.NET 2.0 CSS Friendly Control Adapters。
ASP.NET生成ASP:Menu控件作爲表格佈局。 CSS友好控制適配器將使ASP.NET生成ASP:菜單控件,作爲div內的UL/LI佈局。
這將允許輕鬆整合jQuery和Superfish插件,因爲Superfish插件依賴於UL/LI佈局。
記得爲NonLink元素添加css類。 Superfish的CSS元素不適合他們。如果你像我一樣,並且擁有不是鏈接的根菜單,那麼它會渲染可怕。只需將AspNet-Menu-NonLink元素添加到superfish.css文件中,它就可以很好地呈現出來。
太棒了!自從首先提出這個問題以來,我一直在尋找答案。 – 2009-03-15 15:44:14