Webforms is a bit tricky. If you have an ajax update panel, or an ajax updating object, what it does is it calls the page with some code to only render that element. It also needs to go through the OnInit -> OnLoad before it can render the 'click' event as the click itself is something sent in the ViewState which is "Loaded" , causing OnLoad to trigger.
This will often call the parent's onload as the child MAY need some logic from the parent. There is a way to detect when the call is in an AJAX context, i think it's ScriptManager.GetCurrent(Page).IsInAsyncPostBack;
, and try to disable some of the heavier loading logic if it's an ajax call.