2012-12-20 36 views
0

我有一個treegrid,我想用它的孩子只更新一個節點。所以我嘗試過這樣:如何更新extjs treegrid上的記錄和孩子?

store.load({ 
    node: store.getNodeById(1) 
}); 

更新孩子,但不是節點本身。那麼我如何更新節點和孩子?如果只需要一個數據庫請求,那將是最好的。

回答

0

沒有辦法通過配置來實現它,它只是作爲設計工作。在加載節點的子節點後,你可以做的是一個小技巧,以便操縱樹節點手動更新節點本身。

查看照片。它們顯示你期望的行爲。

enter image description here enter image description here

這是在工作的jsfiddle好:http://jsfiddle.net/lontivero/jBTWn/3/

基本上,這個想法是,正如我剛纔所說,操作樹負載後的孩子。在我的例子中,這是通過:

 var node = store.getNodeById(1); 

     store.load({ 
      node: node, 
      callback: function(newRecord) { 
       var parent = node.parentNode; 
       parent.insertBefore(newRecord[0], node); 
       parent.removeChild(node); 
      }, 
      params: { 
       json: Ext.JSON.encode(updated_data) 
      } 
     }); 

祝你好運!

+0

有何評論?這是你需要的嗎? – lontivero

+0

嗯,它刷新所有的樹,我點擊'嘗試'兩次,它只剩下新的作業塊..樂透彩票消失。對不起,我忘了回答,但我發現了另一個解決方案http://www.sencha.com/forum/showthread.php?206335-extjs-4.1-tree-refresh-a-specific-node&p=812368&viewfull=1#post812368 – Vytautas

+0

我會如果您將解決這些問題,請接受您的答案:更新並刷新僅一個節點,而不刷新整個樹,並且可以工作多次:D – Vytautas