ASP.NET меню и CSS? - PullRequest
       10

ASP.NET меню и CSS?

2 голосов
/ 20 февраля 2009

У меня такое ощущение, что использование Sitemap в ASP.NET не способствует CSS. Где я могу отформатировать меню, чтобы оно выглядело как CSS, чтобы оно выглядело. Где Му Ул и Ли?

... Начинающий, так что прости меня, если прямо под моим носом.

Ответы [ 5 ]

3 голосов
/ 20 февраля 2009

Почему бы просто не использовать меню CSS с ul и li? В ASP.NET нет ничего, что говорило бы о необходимости использовать веб-элементы управления, обычный HTML работает так же хорошо (возможно, лучше).

2 голосов
/ 20 февраля 2009

Использование SiteMap чрезвычайно полезно при его использовании для отображения меню и хлебных крошек.

Вы можете прочитать некоторые учебные пособия о том, как этого добиться, например this . Если вы хотите генерировать чистый UL / LI , я предлагаю вам прочитать этот пост

Всегда есть обучающее видео по ASP.NET для Как мне: Реализовать навигацию по сайту в ASP.NET?

Попробуйте также использовать CSS Friendly Adapters (это то, для чего они были созданы) - есть видеоурок .

Надеюсь, это поможет

1 голос
/ 20 февраля 2009

Для полного контроля над меню вы можете использовать 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, просто добавьте вложенный репитер.

<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.

0 голосов
/ 28 марта 2009

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

0 голосов
/ 20 февраля 2009

Вы можете объединить SiteMapDataSource с Repeater, чтобы создать стандартный список меню <ul><li>. Вы даже можете добавить свои собственные атрибуты в файл web.sitemap, например, указать изображение для пункта меню ...

...