我有一个与母版页相关联的页面。我需要实现Ajax(基本上想要做部分页面刷新)。 在这个页面中,我有网格和分页按钮(第一个/上一个/上一个/下一个),下拉列表和搜索。 所以这些都会更新网格。
现在我有以下代码
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
下
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
这是在ContentTemplate标签启动后的网格/按钮/搜索等html
所以最后页面已经离开了菜单/页脚/标题和内容
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
但这仍然让页面更新。
答案 0 :(得分:1)
我对你的拥有和你想要的东西感到有点困惑。
听起来你有一个Content
控件,里面有UpdatePanel
。在UpdatePanel
ContentTemplate
内,您可以获得所有网格,按钮等以及菜单。
您只需要在UpdatePanel
ContentTemplate
中拥有要进行刷新的控件。你应该在UpdatePanel
之外的所有其他东西。如果UpdatePanel
之外的任何控件需要触发刷新,并为Trigger
中的每个控件设置UpdatePanel
,并告诉它触发哪个事件。
示例:
<asp:Button ID="btnTest" runat="server" Text="Test" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<!-- only your content that needs refreshing goes here -->
<ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnTest" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
在上面的示例中,btnTest
点击事件会导致UpdatePanel
的内容刷新,但Button
或UpdatePanel
之外的任何内容都不会刷新。如果未设置Trigger
,则整个页面将刷新。 Trigger
内的控件不需要UpdatePanel
设置,因为UpdatePanel
将捕获所有控制事件以进行刷新。
您可以在MSDN上阅读更多内容。