【问题标题】:Partial page refresh using an UpdatePanel使用 UpdatePanel 刷新部分页面
【发布时间】:2011-09-01 15:37:33
【问题描述】:

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

但这仍在刷新页面。

【问题讨论】:

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


    【解决方案1】:

    我对你有什么和你想要什么感到有点困惑。

    听起来您有一个 Content 控件,其中包含一个 UpdatePanel。在UpdatePanelContentTemplate 中,您拥有所有网格、按钮等以及菜单。

    您只需要在您的UpdatePanelContentTemplate 中拥有您想要进行刷新的控件。您应该在UpdatePanel 之外拥有的所有其他东西。如果您在UpdatePanel 之外有任何控件需要触发刷新,请为UpdatePanel 中的每个控件设置一个Trigger,并告诉它要触发哪个事件。

    例子:

    <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 没有设置,整个页面会刷新。您不需要为UpdatePanel 中的控件设置Trigger,因为所有控件事件都将被UpdatePanel 捕获以进行刷新。

    您可以在MSDN 上阅读更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 2015-12-22
      • 2013-07-27
      • 2023-04-10
      • 1970-01-01
      相关资源
      最近更新 更多