2009-01-20 40 views
2

从我已经读过的内容来看,这似乎是不可能的,但我想看看有没有人有一个秘密的技巧或至少一个明确的“不”。您可以在.NET中异步更改母版页的ContentPlaceHolder的内容页面吗?

假设主页面实际上只是一个内容页面的控件,实际上并不是内容页面的“主”。如果我想从一个内容的页面去,与相同的主网页其他内容页,我只想说

Response.Redirect("PageB.aspx"); 

但这将立即进行回传,忽隐忽现的页面,这是糟糕的前阿贾克斯做事的方式。

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

这是可能的,如果是这样怎么样?

回答

1

我不知道如果你可以在页面(.aspx)之间,但它绝对可以使用UserControls完成。

ASP.Net页面都有自己的URL,所以你试图做的是从一个URL到另一个URL而没有任何回传,这不是它应该如何工作。


使用用户控件(的.ascx):

创建使用母版页,并使用类似这样的内容

<ajax:UpdatePanel ...> 

    <ContentTemplate> 

     <asp:PlaceHolder ...> 

    </ContentTemplate> 

</ajax:UpdatePanel> 

搜索的UpdatePanel和调整其设置做你想做的事,然后学习如何交换占位符中的用户控件。

+0

作为我的答案的第一部分提到,我几乎可以肯定,使用.aspx页面是不可能的。 – mbillard 2009-01-20 21:46:15

0

没有,你不能因为一个母版页实际上是呈现一个特定的aspx页面上,而不是实际包含aspx页面,因为它看似似乎是编程和设计视图控制。

更多信息:

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

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

相关问题