我是asp.net的新手,目前正在尝试使用有关徒步旅行的信息创建网站。它将覆盖6个区域,每个区域将有更多部分一般信息,景点和徒步旅行。
在最高级别,我有母版页面,菜单上有6个项目(Area1 - Area6)。单击其中一个项目后, clickedArea 将保存到会话中,并打开嵌套的母版页。它包含带有3个项目的Tab(常规信息,景点,Treks)和包含常规信息页面的内容占位符。我想要实现的是,在点击另一个标签后,系统会从会话中读取clickedArea并在占位符中显示正确的内容页面。
所以最后我希望有18个.aspx内容页面,它们会根据clickedArea和clickedTab动态显示在最低级别的占位符中。我想我可以用18个占位符来做,但我正在寻找更好的解决方案,有三个甚至一个内容占位符。有人能帮助我吗?为了更好地理解,我的嵌套Mastep页面看起来像这样。我怎样才能将页面动态加载到这些占位符中?或者还有其他方法可以做到吗?
*<%@ Master Language="C#" MasterPageFile="./Site1.master" AutoEventWireup="true"
CodeBehind="Regions.Master.cs" Inherits="Travels.Areas" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content1" Runat="Server">
<div id="tabs">
<ul>
<li><a href="#tabs-1">General</a></li>
<li><a href="#tabs-2">Sights</a></li>
<li><a href="#tabs-3">Treks</a></li>
</ul>
<div id="tabs-1">
<asp:ContentPlaceHolder ID="General" runat="server"></asp:ContentPlaceHolder>
</div>
<div id="tabs-2">
<asp:ContentPlaceHolder ID="Sights" runat="server"></asp:ContentPlaceHolder>
</div>
<div id="tabs-3">
<asp:ContentPlaceHolder ID="Treks" runat="server"></asp:ContentPlaceHolder>
</div>
</div>
</asp:Content>*
谢谢你,Jozef
答案 0 :(得分:0)
我终于找到了一个解决方案 - 使用链接到web.sitemap的父子菜单。
<asp:SiteMapDataSource ID="smMaster" runat="server" ShowStartingNode="false" />
<asp:SiteMapDataSource ID="smChild" runat="server" ShowStartingNode="false" StartFromCurrentNode="true" />
现在正确显示数据