我有一种感觉,在 ASP.NET 中使用 Sitemap 不利于 CSS。我在哪里格式化菜单看起来像 CSS 可以使它看起来。mu ul 和 li's 在哪里?
...初学者,如果就在我的眼皮底下,请原谅我。
我有一种感觉,在 ASP.NET 中使用 Sitemap 不利于 CSS。我在哪里格式化菜单看起来像 CSS 可以使它看起来。mu ul 和 li's 在哪里?
...初学者,如果就在我的眼皮底下,请原谅我。
为什么不直接使用带有 ul's 和 li's 的 CSS 菜单?ASP.NET 中没有任何内容表明您必须使用 Web 控件,普通的 HTML 也可以正常工作(可能更好)。
使用站点地图显示菜单和面包屑时非常有用。
您可以阅读一些有关如何完成此操作的教程。如果你想生成纯 UL / LI我建议你阅读这篇文章
总是有关于我如何:在 ASP.NET 中实现站点导航的 ASP.NET 视频教程?
尝试,以及使用CSS Friendly Adapters(这就是它们的目的)——还有一个视频教程。
希望能帮助到你
要完全控制菜单,您可以使用中继器并将其绑定到您的 Web.SiteMap。
<asp:Repeater ID="MenuRepeater" DataSourceID="SiteMapDataSource1" runat="server">
<ItemTemplate>
<li>
<a href='<%#Eval("url")%>'><%#Eval("Title")%></a>
</li>
</ItemTemplate>
</asp:Repeater>
如果您正在寻找 CSS 下拉菜单,那么只需添加一个嵌套的中继器。
<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。
您可以将 SiteMapDataSource 与 Repeater 结合使用,从而生成标准<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 %>'>
为了工作。
这个优秀的教程中提供了详细信息: