使用UpdatePanel刷新部分页面

时间:2011-09-01 15:37:34

标签: asp.net updatepanel asp.net-4.0

我有一个与母版页相关联的页面。我需要实现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>

但这仍然让页面更新。

1 个答案:

答案 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的内容刷新,但ButtonUpdatePanel之外的任何内容都不会刷新。如果未设置Trigger,则整个页面将刷新。 Trigger内的控件不需要UpdatePanel设置,因为UpdatePanel将捕获所有控制事件以进行刷新。

您可以在MSDN上阅读更多内容。