我们如何避免母版页回复整个页面?
答案 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中。但这本身就是一个非常糟糕的主意!!