I have a complicated case, so I can't post it.
I have two UpdatePanels
with two UserControls
inside them, like the following:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
&l开发者_运维百科t;A:u1 ID="u1" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<A:u2 ID="u2" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
In this sample, the PostBack
in u1
doesn't effect on u2
. but in my code the PostBack
in the first UserControl
made a PostBack
in the second.
What are the expected reasons ??
Thanks for the help.
This is by design: when a partial postback occurs, the whole page is rendered again even if only part of the resulting markup is sent to the client. Thus, both your user controls go through their lifecycles again, even if only u1
is updated.
If you want to detect that case, you can use the IsInAsyncPostBack property:
protected void Page_Load(object sender, EventArgs e)
{
if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack) {
// This is a partial postback.
}
}
精彩评论