RadAjaxManager无法更新radgrid

时间:2012-09-24 10:21:14

标签: asp.net telerik

我有一个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永远不会重新显示为当前的

2 个答案:

答案 0 :(得分:3)

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

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

答案 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

将它放在页面的末尾。