在Ext.tree.TreePanel中,当我们加载树时,在任何情况下都不会检查是否所有树节点都已完全加载

时间:2014-09-04 06:01:05

标签: javascript extjs recursion tree asp.net-ajax

在Ext.tree.TreePanel中,当我们加载树时,不会检查是否所有树节点都已完全加载。

我们所做的是,我们递归地进行异步调用,并让节点根据扩展属性的节点扩展为true。我们怎样才能找到所有的asyc。调用已完成并且treePanel是完整加载的吗?

背后的想法是当treepanel的节点完全加载时,我们必须启用一个按钮,表示该树可供最终用户进行进一步操作。

2 个答案:

答案 0 :(得分:0)

Ext.Ajax.request(...)返回一个对象,如果该对象包含xhr属性,则请求未完成。

var req = Ext.Ajax.request(..);

if(!req.xhr)
   //request is finished
else 
   // request is not finished

虽然我建议每次请求都返回节点的总数。所以我会像这样返回一个json:

{
    data: [...], // treenodes
    totalCount: 100
}

现在,如果您的树库已包含所有节点,则可以检入每个请求成功函数。

答案 1 :(得分:0)

感谢您输入@JuHwon。但是,在这种情况下,你并不适合。因为Ajax调用是开箱即用的,正如我所提到的,树触发器基于属性调用(可能是isSelectable = true,据我现在可以记得)。因此,为了实现这个用例,我使用了setTimeOut和clearTimeOut方法来动态推送2000 ms的延迟。我没有找到更接近它。