是否可以将多个aspx文件链接到一个内容占位符并在它们之间切换?

时间:2015-01-01 18:45:24

标签: html asp.net tabs master-pages contentplaceholder

我是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

1 个答案:

答案 0 :(得分:0)

我终于找到了一个解决方案 - 使用链接到web.sitemap的父子菜单。

<asp:SiteMapDataSource ID="smMaster" runat="server" ShowStartingNode="false" />
   <asp:SiteMapDataSource ID="smChild" runat="server" ShowStartingNode="false" StartFromCurrentNode="true" />

现在正确显示数据