<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="false" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" Text="Click1" OnClick="Button1_Click" />
<br />
<br />
Last refresh
<%=DateTime.Now.ToString() %>
<br />
<br />
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<asp:Button ID="Button2" runat="server" Text="Click2" OnClick="Button2_Click" />
<br />
<br />
Last refresh
<%=DateTime.Now.ToString() %>
<br />
<br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button2" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
我在这里使用两个更新面板,当我点击“Button2”然后“UpdatePanel2”被刷新,如果我点击“Button1”然后两个更新面板都刷新,但我需要的是如果我点击“Button1”然后“UpdatePanel1”必须要刷新。
感谢。
答案 0 :(得分:4)
此行为是设计使然。因为UpdatePanel2嵌套在UpdatePanel1中,所以当您刷新UpdatePanel1的内容时,这包括子UpdatePanel。
如果您希望UpdatePanel2与UpdatePanel1分开操作,您将不得不将其从UpdatePanel1中取出并使其成为兄弟,而不是孩子。