按钮单击UpdatePanel外部会导致面板刷新

时间:2013-12-09 08:50:16

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

我有一个默认的VS 2013 ASP.NET Webform项目,其中包含一个包含ScriptManager的主页面和一个包含UpdatePanel的内容页面。这就是我在内容页面的ContentPlaceHolder中所拥有的内容:

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
    <asp:UpdatePanel runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            Updated at: <%=DateTime.Now.ToString() %>
        </ContentTemplate>
    </asp:UpdatePanel>
    <asp:Button Text="Click" runat="server" />
</asp:Content>

每次单击“Click”按钮,即使我将UpdateMode设置为“Conditional”,UpdatePanel内部的时间也会刷新。

我的理解是,显示时间的ASP.NET代码应该仅在我第一次获取页面时执行,然后由为面板定义的任何触发器执行(因为面板的更新模式是有条件的)。

我错了吗?如果是这样,为什么?

1 个答案:

答案 0 :(得分:2)

按钮应放在另一个更新面板中。

<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
                <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                        Updated at: <%=DateTime.Now.ToString() %>
                    </ContentTemplate>
                </asp:UpdatePanel>
             <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
                    <ContentTemplate>
                      <asp:Button ID="Button1" Text="Click" runat="server" />
                    </ContentTemplate>
                </asp:UpdatePanel>

            </asp:Content>

希望它有所帮助,

要了解有关更新面板的更多信息,请访问链接

http://ajax.net-tutorials.com/controls/updatepanel-control/