我想創建一個三級菜單,我現在有一個遞歸函數,可以在三個級別上使用。但問題是我如何輸出第三杆?使用兩個中繼器,我設法通過ChildNodes屬性獲得前兩個級別。但那隻能給我第二個層次。如果想要第三級呢?下面的示例代碼。我如何獲得第三級? :)用SiteMap創建三級ASP.NET菜單,我該怎麼做?
<asp:Repeater ID="FirstLevel" DataSourceID="SiteMapDataSource" runat="server" EnableViewState="false">
<ItemTemplate>
<li class="top">
<a href='/About/<%#Eval("Title")%>.aspx' class="top_link"><span class="down"><%#Eval("Title")%></span><!--[if gte IE 7]><!--></a><!--<![endif]-->
<asp:Repeater runat="server" ID="SecondLevel" DataSource='<%#((SiteMapNode)Container.DataItem).ChildNodes%>'>
<HeaderTemplate><!--[if lte IE 6]><table><tr><td><![endif]--><ul class="sub"></HeaderTemplate>
<ItemTemplate>
<li>
<a href='<%#((string)Eval("Url")).Replace("~", "")%>' style="text-align: left;"><%#Eval("Title")%></a>
Third repeater here?
</li>
</ItemTemplate>
<FooterTemplate></ul><!--[if lte IE 6]></td></tr></table></a><![endif]--></FooterTemplate>
</asp:Repeater>
</li>
</ItemTemplate>
</asp:Repeater>
這已經完成了,我有一個SiteMapProvider類繼承自StaticSiteMapProvider並遞歸地構建站點地圖。但問題是我如何渲染它三個級別? Menu控件是否創建了糟糕的表格等?我認爲這就是爲什麼它第一次被傾倒的原因:) – jinxen 2010-02-11 07:02:00
我建議創建一個自定義的服務器控件,而不是一個站點地圖提供程序。對於簡單的站點地圖,ASP.NET菜單控件將正常工作。使用CSS Friendly Adapters將菜單呈現爲列表,http://cssfriendly.codeplex.com。 – 2010-02-11 17:07:13