与.sitemap文件
问题描述:
ASP.Net菜单控制我没有吨的经验与网站地图文件绑定到ASP.Net菜单控制和想看看,如果这是可能的(没有很多定制的管道)。与.sitemap文件
我使用CSS Friendly Adapters得到干净的标记。我已经准备好了CSS来创建水平导航,其中顶部栏代表主导航,下面的栏代表子导航。
基本上我想要改造这个网站地图文件:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="~/Default.aspx" title="Home" description="">
<siteMapNode url="~/Page1.aspx" title="Page1" description="">
<siteMapNode url="~/SubPage1_1.aspx" title="Sub Page 1.1" description="" />
<siteMapNode url="~/SubPage1_2.aspx" title="Sub Page 1.2" description="" />
</siteMapNode>
<siteMapNode url="~/Page2.aspx" title="Page2" description="">
<siteMapNode url="~/SubPage2_1.aspx" title="Sub Page 2.1" description="" />
<siteMapNode url="~/SubPage2_2.aspx" title="Sub Page 2.2" description="" />
</siteMapNode>
</siteMapNode>
</siteMap>
进入这个标记:
<div class="nav" >
<ul class="fixed">
<li><a href="Page1.aspx" class="active">Page 1</a></li>
<li><a href="Page2.aspx">Page 2</a></li>
</ul>
</div><!-- end .nav -->
<div class="subnav" >
<ul class="fixed">
<li><a href="SubPage1_1.aspx" class="active">Page 1.1</a></li>
<li><a href="SubPage1_2.aspx">Page 1.2</a></li>
</ul>
</div><!-- end .subnav -->
凡亚导航绑定到主导航的子节点站点地图中的节点。
是不是我的错,期待这将是简单的;)
答
因此,原来该解决方案是其实很简单。
通过使用两个SiteMapDataSourceControls,并设置第二个的StartingNodeOffset = 1,那么您可以通过使用两个中继器有效地实现两层导航方法。
<ul>
<asp:Repeater ID="rptMainNavigation" runat="server" DataSourceID="SiteMapDataSourceMainNavigation">
<ItemTemplate>
<li><a href="<%# ((SiteMapNode)Container.DataItem).Url %>"><%# ((SiteMapNode)Container.DataItem).Title %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
<ul>
<asp:Repeater ID="rptSubNavigation" runat="server" DataSourceID="SiteMapDataSourceSubNavigation">
<ItemTemplate>
<li><a href="<%# ((SiteMapNode)Container.DataItem).Url %>"><%# ((SiteMapNode)Container.DataItem).Title %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
<asp:SiteMapDataSource ID="SiteMapDataSourceMainNavigation" runat="server" ShowStartingNode="False" />
<asp:SiteMapDataSource ID="SiteMapDataSourceSubNavigation" runat="server" ShowStartingNode="False" StartingNodeOffset="1" />
你能否告诉我如何将第二级导航显示为水平。我希望你有一个CSS文件,它以水平样式显示二级导航。 – 2011-05-09 10:58:19
网上有很多例子,包括“水平CSS导航”。大多数使用嵌套列表来创建父子关系ihp。在我的情况下,我只是在另一个顶层使用了一层。下面是应该让你开始一个链接:http://www.alvit.de/css-showcase/css-navigation-techniques-showcase.php – Josh 2011-05-09 12:52:31
这是实实在在的东西(教程3:母版页和网站导航斯科特Mitchell): http://msdn.microsoft.com/en-us/library/aa581782.aspx请参阅'步骤3:基于站点地图显示菜单'。真漂亮! :) – 2011-08-27 20:44:14