The following is emitted by Asp.Net ScriptManager before other markup and JavaScript on the page (in my case Infragistic’s Grid).
Sys.Application.add_init(function() {
$create(AjaxControlToolkit.AutoCompleteBehavior, /*Initialization code for the autocompleteextender here*/);
This way on a slow connection ms ajax application object starts up before IG is done tweaking the html DOM and IE fails.
The best solution to this problem that I was able to find after a couple days of debugging is the following:
Put the following script in a js file that is loaded after ms ajax script is loaded:
// Delay Ajax Intitialization
var ajaxInitialize = Sys.Application.initialize;
Sys.Application.initialize = function DoNothing() { }
Put the following code in asp.net base page (alternatively this script could be put directly in the page markup at the end of the page - after IG Grid or any other controls are completely loaded):
protected override void RenderChildren(HtmlTextWriter writer)
{
base.RenderChildren(writer);
writer.Write("<script type='text/javascript'>");
writer.Write("Sys.Application.initialize = ajaxInitialize;");
writer.Write("Sys.Application.initialize();");
writer.Write("</script>");
}