If you happen to have some sort of ActiveX control on your page in an IFrame, such as PDF viewer, then some of the AJAX controls which use PopupExtender will be obscured by the ActiveX or any other browser plug-in which rendering happens out of the main page context.
For example menus, and CalendarExtender suffer this problem, since they inherit PopupBehavior.
What happens is Ajax PopupExtender behavior explicitly checks for browser version, in particular IE 6. In IE 6 there was a known problem with z-index so you had to use IFrames to render some popup controls, so PopupBehavior checks whether browser is IE 6 and creates an IFrame around control, otherwise no IFrame created, hence the problem in newer IEs and FireFox with browser plug-ins.
To fix this problem, first download source code for AJAX Control Toolkit from CodePlex. And find PopupExtender folder in VS project. Then find this function:
Remember to duplicate your effort for debug and release versions of code, since there are two separate files.
Now lets take a look at the original code:
Notice the section above, which has IF statement.
Remove that IF statement completely. Recompile your AjaxControlToolKit project and reference this new dll in your ASP.NET project. Drum roll… it works! ActiveX does not render over your popup control anymore.
Keep in mind, if you have many IFrames on your page it would slower rendering, so try to keep number of IFrames to a minimum.
Another ISolvable problem :).