2

我有一种感觉,在 ASP.NET 中使用 Sitemap 不利于 CSS。我在哪里格式化菜单看起来像 CSS 可以使它看起来。mu ul 和 li's 在哪里?

...初学者,如果就在我的眼皮底下,请原谅我。

4

5 回答 5

3

为什么不直接使用带有 ul's 和 li's 的 CSS 菜单?ASP.NET 中没有任何内容表明您必须使用 Web 控件,普通的 HTML 也可以正常工作(可能更好)。

于 2009-02-20T10:07:14.793 回答
2

使用站点地图显示菜单和面包屑时非常有用。

您可以阅读一些有关如何完成此操作的教程。如果你想生成纯 UL / LI我建议你阅读这篇文章

总是有关于我如何:在 ASP.NET 中实现站点导航的 ASP.NET 视频教程?

尝试,以及使用CSS Friendly Adapters(这就是它们的目的)——还有一个视频教程

希望能帮助到你

于 2009-02-20T10:32:04.327 回答
1

要完全控制菜单,您可以使用中继器并将其绑定到您的 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。

于 2009-02-20T10:03:19.000 回答
0

您可以将 SiteMapDataSource 与 Repeater 结合使用,从而生成标准<ul><li>菜单列表。您甚至可以将自己的属性添加到 web.sitemap 文件中,例如为菜单项指定图像...

于 2009-02-20T10:21:55.693 回答
0

teknohippy 关于使用中继器的建议很棒!

然而,线

    <asp:Repeater ID="DropDownRepeater" DataSource='<%#Container.DataItem.ChildNodes()%>' runat="server">

是不正确的。它需要是

    <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# ((SiteMapNode) Container.DataItem).ChildNodes %>'>

为了工作。

这个优秀的教程中提供了详细信息:

http://msdn.microsoft.com/en-us/library/aa581781.aspx

于 2009-03-28T10:48:39.930 回答