【问题标题】:How to load content to contentplaceholder dynamically in asp.net?如何在 asp.net 中动态地将内容加载到 contentplaceholder?
【发布时间】:2014-07-11 07:28:03
【问题描述】:

我有一个带有一个内容占位符的母版页,母版页的其余部分填充了用户控制文件以定义标题、导航等。我有一个实现树视图的侧边导航。树节点由数据库中的数据填充。我想使用 contentplaceholder 根据点击的树节点显示来自不同 .aspx 页面的内容。

这是母版页的一部分:

<div>
  <div>
   <uc5:lcont ID="lcont1" runat="server"/>
  </div>
  <div>
    <asp:ContentPlaceHolder ID="ccont" runat="server">      
    </asp:ContentPlaceHolder>
  </div>

  <div>
     <uc7:rcont ID="rcont1" runat="server" />
  </div>

如您所见,contentplaceholder 位于两个 div 之间。让我给你看一下它的快照。

我想从不同的.aspx 页面加载内容到黄色区域表示的内容占位符。内容需要根据它右边点击的树节点。

我需要的是用同一页面中的另一个内容替换 contentplace holder 中的内容,而无需重新加载整个页面。

【问题讨论】:

    标签: c# asp.net webforms contentplaceholder


    【解决方案1】:

    您想要的正是 ASP.NET 母版页和内容页概念所提供的内容。您创建一个母版页,您可以在其中设置网站的通用布局。页眉、页脚、菜单等。可变内容呈现委托给各个内容页面,使用母版页中的一个或多个内容占位符。

    所以现在您需要使用 Visual Studio 中的“使用母版页的 Web 表单”选项创建一个或多个内容页面 (.aspx)。创建内容页面后,您将获得与母版页中的内容占位符一样多的内容块。您只需渲染这些内容块,它们就会自动显示在母版页的相应位置。

    在您的树视图中,您需要确保树节点正确链接到这些 aspx 页面。然后只要点击树节点,内容就会根据需要渲染在中心区域。

    【讨论】:

    • 是的,但是这样我正在调用另一个继承母版页的页面。我想要的是坚持在同一页面中并在 contentplace holder 中获取各种内容,同时我只需要仅刷新内容占位符而不是整个页面。如果我通过单击树节点调用另一个页面,则新页面将呈现,这不是我想要的。
    • 能否在 contentplaceholder 中调用页面?我认为这是不可能的,但我不确定。是吗?
    • 我认为在这种情况下你有两个选择。一种是您在不同的用户控件中创建所有内容,而不是 aspx,然后在单击树视图时动态加载相应的用户控件。第二种选择可能是使用 iframe,可以在点击树节点上更改,当然内容页面不应该是实际的内容页面,而是只有内容部分的普通 aspx 页面。
    • 我想你想使用一个母版页和这个:ajaxcontroltoolkit.codeplex.com 恕我直言:ajaxcontroltoolkit 和 webforms 是魔鬼。您还可以使用 jquery 并进行 AJAX 调用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2016-08-22
    • 1970-01-01
    相关资源
    最近更新 更多