2

从我已经读过的内容来看,这似乎是不可能的,但我想看看是否有人在他们的袖子里有一个秘密的把戏,或者至少是一个明确的“不”。

假设母版页实际上只是供内容页使用的控件,而不是内容页的“母版”。如果我想从一个内容页面转到另一个具有相同母版页的内容页面,我会说

Response.Redirect("PageB.aspx");

但这会立即导致回发,闪烁页面,这是糟糕的 pre-ajax 做事方式。

在这个当前项目中,我试图看看我是否可以弄清楚如何在母版页上单击按钮时异步更改母版页中 ContentPlaceHolder 的当前内容页。

这可能吗,如果可以,怎么办?

4

2 回答 2

1

我不知道您是否可以在页面之间(.aspx),但绝对可以使用 UserControls 来完成。

每个 ASP.Net 页面都有自己的 URL,因此您要做的是从一个 URL 转到另一个 URL,而无需任何回发,这不是它应该如何工作的。


使用用户控件 (.ascx):

创建一个使用 MasterPage 的页面并在内容中使用类似的内容

<ajax:UpdatePanel ...>

    <ContentTemplate>

        <asp:PlaceHolder ...>

    </ContentTemplate>

</ajax:UpdatePanel>

搜索 UpdatePanel 并调整其设置以执行您想要的操作,然后了解如何在占位符中交换用户控件。

于 2009-01-20T21:30:50.637 回答
0

,您不能,因为母版页实际上是呈现在特定 aspx 页面上的控件,而不是实际包含 aspx 页面,因为它看似以编程方式和设计视图显示。

更多信息:

但是,您可以使用各种其他控件来模拟此效果。asp:MultiView 控件就是一个例子,每个“页面”可以在单个视图中制作并放置在更新面板中,从而允许异步切换。或者,您可以在单独的用户控件中定义每个页面并将其放在更新面板中,根据需要异步切换这些控件上的可见属性。

确实有很多不同的方法可以实现类似于更改母版页内容占位符的效果。

于 2009-03-02T17:56:43.800 回答