ASP.NET中的母版页和回发

时间:2008-12-23 09:34:07

标签: asp.net ajax master-pages

我们如何避免母版页回复整个页面?

3 个答案:

答案 0 :(得分:2)

只是澄清一下 - 更新面板不会阻止整页回发或整页生命周期。它只是导致该过程在后台“无法看见”给用户完成。唯一的区别是,在完成回发后,只更新由更新面板声明包装的部分,从而导致只有部分页面被回发的错觉。

如果触发器控件位于updatepanel内,则应将ChildrenAsTriggers属性设置为True。如果触发更新的控件位于更新面板之外,则应将“触发器”部分添加到控制面板并添加异步触发器。如果它是一个组合,那么你可以将两者结合起来以获得最佳效果。

如果触发更新的控件包含在更新面板中:

<asp:UpdatePanel id="MyUpdatePanel" runat="server" ChildrenAsTriggers="True">
  <ContentTemplate>
    ...Stuff you want updated
  </ContentTemplate>
</asp:UpdatePanel>

或者如果控件未包含在更新面板中:

<asp:UpdatePanel id="MyUpdatePanel" runat="server">
  <ContentTemplate>
    ...Stuff you want updated
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="MyButtonControl" EventName="Click" />
  </Triggers>
</asp:UpdatePanel>

答案 1 :(得分:1)

使用母版页对整个页面是否回发都没有任何影响。一个简单的ASPX页面没有主页和标准也可以进行整页回发。

虽然在行间阅读,但我猜你的母版页上已经有一些UpdatePanel(可能是在内容占位符周围),这会阻止整个页面刷新内部的内容导致回发。

无论哪种方式,防止整页刷新(无论是否使用母版页)的关键是确保导致回发的控件存在于UpdatePanel内或使用某些JavaScript回调服务器并处理异步响应。

答案 2 :(得分:0)

母版页不对PostBack负责,这就是HTML表单的用途。

阻止页面回发的唯一方法是将整个内容包装在UpdatePanel中。但这本身就是一个非常糟糕的主意!!

相关问题