我希望在将节点放到树上之前验证它。 我为此目的使用了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;
}
});
}
}
请帮我解决我的错误
答案 0 :(得分:1)
我建议你的函数总是返回false(所以它不允许删除节点),但是当ajax请求返回适当的值(即服务器允许删除)时,你以编程方式删除节点。
其他可能性:您通常允许它,但在失败时,您撤消更改。