取消节点删除

时间:2010-10-27 06:27:04

标签: extjs

我希望在将节点放到树上之前验证它。 我为此目的使用了beforenodedrop事件,但是在服务器端进行了验证,因为响应没有及时到来,并且函数总是返回true,因此节点被删除。我想知道应该为此目的使用哪种方法/事件

这是我的beforenodedrop事件的代码

treeList_fnBeforeNodeDrop = function (e){     
    if(e.target.attributes.LocationLevel<=e.data.node.attributes.LocationLevel)//if node is dropped on node of previous level
    {
       return true;
    }else{ //If node is dropped on level greather than its level like region into area verify its hierarchy

        Ext.Ajax.request({
            method: 'POST',
            url: this.webService + '/ValidateNodeDrop',
            params: {DropLocationId: e.data.node.id,ParentLocationId:e.target.id, TargetLocationLevel:e.target.attributes.LocationLevel},
            success: function ( result, request ) {
                 return true;
            },
            failure: function ( result, request ) {
                Ext.Msg.alert('Failure', 'You can not drop node at this level');

                return false;
            }
        });

    }
}

请帮我解决我的错误

1 个答案:

答案 0 :(得分:1)

我建议你的函数总是返回false(所以它不允许删除节点),但是当ajax请求返回适当的值(即服务器允许删除)时,你以编程方式删除节点。

其他可能性:您通常允许它,但在失败时,您撤消更改。