我有一个radgrid,它应该在更改checkboxlist时更新(在由AutoPostBack触发的on选定事件上实现)但是当我检查列表中的复选框时,RadAjaxLoading图片将正常工作以显示加载图像在哪里然而,RadGrid永远不会消失并重新显示网格。根据我的网络浏览器中的控制台错误,我不断收到错误:
未捕获TypeError:对象[object Object]没有方法'_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永远不会重新显示为当前的
答案 0 :(得分:3)
发现该错误与.NET 4.0不兼容,并且旧版本的telerik(2009)设法通过在单独的JavaScript文件中使用以下补丁并将其包含在我的母版页的页脚中来解决错误。
答案 1 :(得分:3)
这个脚本解决了我的问题:
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
将它放在页面的末尾。