We have a structure which has 3 main UpdatePanels, each of which has several nested UpdatePanels (but only one level of nesting.) All of the panels are set to conditional with ChildrenAsTriggers set to false, so it looks roughly like this:
<asp:UpdatePanel ChildrenAsTriggers="false" OnLoad="Update_OnLoad"
ID="updateCol2" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:UpdatePanel ChildrenAsTriggers="false" UpdateMode="Conditional"
ID="updateFeed" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnSubmit" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Button OnClick="function" ID="btnSubmit" runat="server" />
<ContentTemplate>
</asp:UpdatePanel>
</ContentTemplate>
</asp:UpdatePanel>
I would expect that the OnLoad function of the parent update panel would never run except on the actual page load, and that the button's OnClick function would be executed on every click, updating the child updatepanel. However, the parent UpdatePanel IS updated on every click of the button, and the child update panel only fires afterward (as a result of the parent updatepanel's update.)