我有一个默认的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代码应该仅在我第一次获取页面时执行,然后由为面板定义的任何触发器执行(因为面板的更新模式是有条件的)。
我错了吗?如果是这样,为什么?
答案 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>
希望它有所帮助,
要了解有关更新面板的更多信息,请访问链接