After moving the dnn 3.2 to new hosting provider (Windows Server 2008 R2), the DNNTree (used in FileManager, ListManager, SideMenu etc) stopped to work and the page showed a JavaScript error in ~/js/dnn.controls.dnntree.js. After some digging I've found the reason: in the Ajax response, the DNNTree's id has the form of UniqueID (i.e.
dnn$ctl520$FileManager$DNNTree) instead of expected ClientID (i.e.
dnn_ctl520_FileManager_DNNTree).
I haven't found out why. The work-around that helped was to rewrite the function
dnn_dom.prototype.getById in the file ~/js/dnn.js like this:
dnn_dom.prototype.getById = function (sID, oCtl) {
if (oCtl == null)
oCtl = document;
var ret;
if (oCtl.getElementById) //(dnn.dom.browser.isType(dnn.dom.browser.InternetExplorer) == false)
ret = oCtl.getElementById(sID);
else
ret = oCtl.all(sID);
if (ret == undefined) {
var uID = sID.replace(/_/g, '$');
if (oCtl.getElementById)
ret = oCtl.getElementById(uID);
else
ret = oCtl.all(uID);
if (ret != undefined)
ret.id = sID;
}
return ret;
}
If the element isn't found by the sID in the ClientID form, it tries to retrieve it by iID in the UniqueID form. If found then, it rewrites it's id to the expected sID.