我覺得在ASP.NET中使用Sitemap不利於CSS。我在哪裏設置一個菜單,使其看起來像CSS一樣。 mu ul和li在哪裏?ASP.NET菜單和CSS?
...初學者,所以請原諒我,如果有我的鼻子下。
我覺得在ASP.NET中使用Sitemap不利於CSS。我在哪裏設置一個菜單,使其看起來像CSS一樣。 mu ul和li在哪裏?ASP.NET菜單和CSS?
...初學者,所以請原諒我,如果有我的鼻子下。
使用SiteMap在使用它顯示菜單和方括號時極其有用。
你可以閱讀一些關於如何做到這一點的教程,如this。如果你想產生純UL/LI我建議你閱讀this post
總是有上How Do I: Implement Site Navigation in ASP.NET?
嘗試ASP.NET視頻教程,以及使用CSS Friendly Adapters(這是他們建立) - 還有一個video tutorial。
希望它可以幫助使用一箇中繼器
要完全控制菜單,您可以使用Repeater並將其綁定到Web.SiteMap。
<asp:Repeater ID="MenuRepeater" DataSourceID="SiteMapDataSource1" runat="server">
<ItemTemplate>
<li>
<a href='<%#Eval("url")%>'><%#Eval("Title")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
如果您正在尋找CSS下拉菜單,那麼只需添加一個嵌套的Repeater即可。
<asp:Repeater ID="MenuRepeater" DataSourceID="SiteMapDataSource1" runat="server" EnableViewState="false">
<ItemTemplate>
<li>
<a href='<%#Eval("url")%>'><%#Eval("Title")%></a>
<ul>
<asp:Repeater ID="DropDownRepeater" DataSource='<%#Container.DataItem.ChildNodes()%>' runat="server">
<ItemTemplate>
<li>
<a href='<%#Eval("url")%>'><%#Eval("Title")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</li>
</ItemTemplate>
</asp:Repeater>
所以你會得到你想要的CSS菜單,仍然使用你的Web.SiteMap。
雖然只會給你兩個級別。最好寫一些遞歸函數。 – Craig 2009-02-20 10:24:28
爲什麼不只是使用一個CSS菜單與ul的和李的? ASP.NET中沒有什麼說你必須使用Web控件,正常的HTML也可以(也許更好)工作。
我有點擔心,如果我只使用CSS,那麼我會錯過SiteMap功能的簡單 - 顯然我不是。 我想我會用CSS來試試它。 – RocketGoal 2009-02-20 10:17:49
WebForm控件的問題通常是它們很簡單,很難做簡單的事情。徹底沮喪做複雜的事情。 – Craig 2009-02-20 10:21:59
您可以將SiteMapDataSource與Repeater tu組合,產生標準的<ul><li>
菜單列表。您甚至可以將自己的屬性添加到web.sitemap文件中,例如指定菜單項的圖像...
teknohippy的建議是偉大的!
然而,線
<asp:Repeater ID="DropDownRepeater" DataSource='<%#Container.DataItem.ChildNodes()%>' runat="server">
不正確。它需要是
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%# ((SiteMapNode) Container.DataItem).ChildNodes %>'>
爲了工作。
細節在這個優秀的教程可用:
如果你要非常精細地控制生成的HTML你最好有一箇中繼器。我已經爲我的答案添加了示例。 – 2009-02-20 10:23:08