我有一个雷达格,当一个复选框列表被更改时,它应该更新(在一个由AutoPostBack触发的选定事件上实现),但是当我在列表中选中一个复选框时,RadAjaxLoading图片将正确地显示加载图像,然而,它永远不会离开并重新显示网格。根据我的web浏览器中的控制台错误,我一直收到以下错误:
Uncaught :对象没有方法'_destroyTree'
这就是我如何设置我的经理,如果这有帮助的话:
<telerik:RadAjaxManager ID="RadAjaxManagerNotesView" runat="server">
<AjaxSettings>
<telerik:AjaxSetting AjaxControlID="RadGridNotes">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGridNotes" LoadingPanelID="RadAjaxLoadingPanel" />
</UpdatedControls>
</telerik:AjaxSetting>
<telerik:AjaxSetting AjaxControlID="CheckBoxListCategories">
<UpdatedControls>
<telerik:AjaxUpdatedControl ControlID="RadGridNotes"
LoadingPanelID="RadAjaxLoadingPanel" />
</UpdatedControls>
</telerik:AjaxSetting>
</AjaxSettings>
</telerik:RadAjaxManager>有人能帮我解决这个错误吗?RadGrid将永远不会在当前时重新显示。
发布于 2012-09-25 09:44:10
发现该错误与.NET 4.0不兼容,而telerik(2009)的旧版本通过在单独的JavaScript文件中使用下面的修补程序并将其包括在母版页脚中,成功地绕过了该错误。
default.zip
发布于 2013-11-14 13:12:44
这个脚本解决了我的问题:
function _destroyTree2(element) {
if (element.nodeType === 1) {
var childNodes = element.childNodes;
for (var i = childNodes.length - 1; i >= 0; i--) {
var node = childNodes[i];
if (node.nodeType === 1) {
if (node.dispose && typeof (node.dispose) === "function") {
node.dispose();
}
else if (node.control && typeof (node.control.dispose) === "function") {
node.control.dispose();
}
var behaviors = Sys.UI.Behavior.getBehaviors(node);
for (var j = behaviors.length - 1; j >= 0; j--) {
behaviors[j].dispose();
}
this._destroyTree(node);
}
}
}
}
Sys.WebForms.PageRequestManager.getInstance()._destroyTree = _destroyTree2把它放在页面的末尾。
https://stackoverflow.com/questions/12563046
复制相似问题