如何在 asp.net 中从 web.sitemap 创建水平菜单

how to create a horizontal menu from web.sitemap in asp.net

我试图从 web.site map.But 创建水平站点菜单,不幸的是它显示为第一个根节点,然后是三个父节点,然后是我想要的每个子节点 correspondingly.But下面的结构就像,前四个主菜单水平 Home > Services > Products > Company 然后这些父菜单的子菜单应该显示在每个人的下面,如果我将光标悬停在 Services 它应该显示子菜单 Web Designs >Website Development等等,或者对于产品它应该显示 HTML Metatag Extractor ,Apartment Management System etc.How 我可以做 that.With 它显示的现有工作就像第一个单根节点 Home,如果你鼠标悬停它显示Services , Products , Company 那么每个子节点对应

以下是我所做的工作 web.site地图是

<?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" />

按照您目前的设置方式,主页是顶级节点,服务、产品和公司位于其下方。

你会想做这样的事情:

<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 个节点。