My information: your update panel is inside the naming container, so its client-side identifier will be slightly different from the server-side identifier. This means that you are passing the wrong __EVENTTARGET parameter to the side __doPostBack client, and your partial side __doPostBack has become complete (which means not async).
So, change the client code to:
__doPostBack('<%= MyPanel.ClientID %>', MyParam);
should solve the problem.
By the way, you can get the second ( MyParam in your code) parameter from the server side:
var arg = Request.Params.Get("__EVENTARGUMENT");
source share