2011-04-13 68 views
1

我有一個帶加載器的TreePanel。我也有一個TextField,在每次按鍵(帶緩衝區)後重新加載加載器。Extjs樹面板加載器ajax調用

如果發生上次重新加載時發生這種情況,我想取消當前的重新加載並重新加載。我現在有中止工作,但它可以防止任何重載從那裏....

// abort the previous call. Works, but then cant reload 
thisTree.loader.abort(); 

// This works without the abort 
thisTree.loader.baseParams.quicksearch_string = val; 
thisTree.root.reload();. 

希望我失去了一些東西根本,但不能似乎數字出來​​...

回答

0
abort : function(){ 
    if(this.isLoading()){ 
     Ext.Ajax.abort(this.transId); 
    } 
}, 

它看起來像是調用中止與請求的具體事務ID,所以在我看來,這裏似乎沒有任何異步問題。但是,您可以通過在中止和重新加載調用之間放置警報來確認中止完全結束,然後再重新加載函數創建新的事務ID。

我,不過,有點驚訝的是:

thisTree.root.reload(); 

工作沒有中止。什麼類型的節點是你的根節點? Ext.tree.AsyncTreeNode?我看到的更常見的方法是:

tree.getLoader().load(tree.root); 

從我所看到的節點並不總是有一個重載方法。

雖然需要更多信息。中止和調用重新加載時會發生什麼? Firebug不顯示任何Ajax請求?

+0

感謝您的回答。我試試你的重裝方法。是的,節點是一個AsyncTreeNode。 Firebug顯示電話。沒有中止,當調用重載時,它顯示ajax調用。但另一個人不能做,直到完成 – neolaser 2011-05-04 00:10:17