2

我有一个 radgrid,当复选框列表更改时应该更新(在由 AutoPostBack 触发的选定事件上实现)但是当我选中列表中的复选框时,RadAjaxLoading 图片将正常工作以在 RadGrid 所在的位置显示加载图像但是它永远不会消失并重新显示网格。根据我的网络浏览器中的控制台错误,我不断收到以下错误:

未捕获的类型错误:对象 [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 将永远不会重新显示

4

2 回答 2

4

发现该错误与 .NET 4.0 不兼容,旧版本的 telerik(2009) 设法通过在单独的 JavaScript 文件中使用以下补丁并将其包含在我的母版页的页脚中来解决该错误。

http://www.telerik.com/ClientsFiles/203221_default.zip

于 2012-09-25T09:44:10.807 回答
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

把它放在页面的末尾。

于 2013-11-14T13:12:44.020 回答