Как создать горизонтальное меню из web.sitemap в asp.net

Я пытался создать горизонтальное меню сайта из карты web.site. Но, к сожалению, он показывает, как сначала один корневой узел, затем три родительских узла, а затем каждый дочерний узел соответственно. Но я хочу в следующей структуре, как, первые четыре главного меню по горизонтали, как Home > Services > Products > Company тогда дочерние меню этих родительских меню должны отображаться ниже каждого человека, например, если я наведу курсор мыши на Services это должно показать детское меню Web Designs >Website Development и т. д. или для продуктов это должно показать HTML Metatag Extractor ,Apartment Management System и т.д. Как я могу это сделать. С существующей работой это показывает как первый единственный корневой узел HomeЕсли вы наведите указатель мыши на "Сервисы, Продукты, Компания", то каждый дочерний узел соответственно

Ниже приводится работа, которую я сделал. Web.site map

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode url="index.aspx" title="Home"  description="Home">
    <siteMapNode url="Services.aspx" title="Services"  description="">
      <siteMapNode url="webdesign.aspx" title="Web Designs"  description="" />
      <siteMapNode url="websitedevelopment.aspx" title="Website Development"  description=""/>
      <siteMapNode url="cmscustomization.aspx" title="CMS Customization"  description="" />
      <siteMapNode url="softwaredevelopment.aspx" title="Software Development"  description="" />
      <siteMapNode url="internetmarketing.aspx" title="Internet Marketing"  description="" />
      <siteMapNode url="mobiledevelopment.aspx" title="Mobile Development"  description="" />
      <siteMapNode url="hostingsolutions.aspx" title="Hosting Solutions"  description="" />
    </siteMapNode>
    <siteMapNode url="products.aspx" title="Products"  description="" >
      <siteMapNode url="tagxtor.aspx" title="HTML Metatag Extractor"  description="" />
      <siteMapNode url="ams.aspx" title="Apartment Management System"  description="" />
      <siteMapNode url="cgnp.aspx" title="Closed Group Network Portal"  description="" />
      <siteMapNode url="ribbon.aspx" title="Retail Management System"  description="" />
    </siteMapNode>
    <siteMapNode url="company.aspx" title="Company"  description="" >
      <siteMapNode url="aboutus.aspx" title="About Us"  description="" />
      <siteMapNode url="team.aspx" title="Our Team"  description="" />
      <siteMapNode url="career.aspx" title="Work With Us"  description="" />
      <siteMapNode url="contactus.aspx" title="Contact Us"  description="" />
    </siteMapNode>
  </siteMapNode>
</siteMap>

HTML код

 <asp:Menu ID="Menu1" runat="server" StaticEnableDefaultPopOutImage="false" Orientation="Horizontal" DataSourceID="SiteMapDataSource1">

 <asp:SiteMapPath ID="SiteMapPath1"   runat="server" PathSeparator=">"></asp:SiteMapPath>

<asp:SiteMapDataSource ID="SiteMapDataSource1"  runat="server" />

1 ответ

Решение

То, как вы в данный момент настроили его, "Дом" - это верхний узел, а "Сервисы", "Продукты" и "Компания" - ниже.

Вы хотите сделать что-то вроде этого:

<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
   <siteMapNode url="" title="Top Level"  description="Top Level">
       <siteMapNode url="Home.aspx" title="Home"  description="" />
       <siteMapNode url="Services.aspx" title="Services"  description="" />
       <siteMapNode url="Products.aspx" title="Products"  description="" />
       <siteMapNode url="Company.aspx" title="Company"  description="" />
   </siteMapNode>
</siteMap>

В вашем SiteMapDataSource вы хотите добавить некоторые новые свойства

<asp:SiteMapDataSource ID="SiteMapDataSource1"  runat="server" StartingNodeOffset="0" ShowStartingNode="false" />

Это изменение SiteMapDataSource будет игнорировать узел верхнего уровня и отображать 4 узла под ним.

Другие вопросы по тегам