2009-10-15 15 views
7

Ext.tree.TreePanel bileşeni oluşturmak ve içeriği harici URl'den düzenli olarak yüklemek istiyorum. Bu yüzdenExt.tree.TreePanel nasıl yeniden yüklenebilir?

new Ext.tree.TreePanel({ 
     root: { 
      nodeType: 'async', 
      text: 'asdasd', 
      draggable: false, 
      id: 'folders-tree-root' 
     }, 
     loader: new Ext.tree.TreeLoader() 
}); 

gibi bir şey yazdım Ve şimdi bu ağacı yeniden yüklemek istiyorum, bu yüzden yazın:

tree.loader.dataUrl = 'folders-sample.json'; 
tree.root.reload(); 

Ve hiçbir şey olmuyor.

ekleyin: Ben dataUrl param bazı geçersiz bir değer ayarlanır bulduk tek yolu TreeLoader oluşturma:

new Ext.tree.TreePanel({ 
     root: { 
      nodeType: 'async', 
      text: 'asdasd', 
      draggable: false, 
      id: 'folders-tree-root' 
     }, 
     loader: new Ext.tree.TreeLoader(dataUrl: 'something') 
}); 

cevap

7

Ne aradığınız TreeLoader için load yöntemdir. Yani böyle bir şey örnek vermeli.

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

İşte benim de demo sitede mevcuttur var benim tam bir örnek. ExtJS demonlarından birinden birazcık mahsur kaldı ve hacklendi ama sana ihtiyacın olanı almalı.

Ext.onReady(function() { 
    var root = new Ext.tree.AsyncTreeNode({ 
     text: 'Ext JS', 
     id: 'src' 
    }); 
    var reloadTree = function() { 
     tree.enable(); 
     tree.getLoader().dataUrl = 'get-nodes2.php'; 
     tree.getLoader().load(tree.root); 
    }; 

    var tree = new Ext.tree.TreePanel({ 
     animate: true, 
     autoScroll: true, 
     nodeType: 'async', 
     loader: new Ext.tree.TreeLoader(), 
     containerScroll: true, 
     border: false, 
     disabled: true, 
     id: 'myTree' 
    }); 

    var myPanel = new Ext.Panel({ 
     items: tree, 
     border: false, 
     tbar: [{ 
      text: 'Refresh', 
      handler: reloadTree 
     }] 
    }); 

    tree.setRootNode(root); 
    myPanel.render('tree'); 
}); 

Alkış

+0

Sana silerken senin örneğin çalışması duracaktır düşünüyorum '{dataUrl: '-nodes.php olsun'} TreeLoader yapıcı çağrısından'. Benim durumumda Ext.tree.TreePanel'i genişletiyorum, ancak benzer kodları kullanıyorum ve 'dataUrl: 'fake-url' 'tanımını kaldırdıktan sonra çalışmaz. –

+0

Örneği, yapıcıda bir dataUrl değeri kullanmadan güncelledim. Bu nedenle, veriyi olmadığı için ağacı ilk olarak devre dışı bırakıyorum. Yenile düğmesine tıklayın, ağaç yüklenir ve etkinleştirilir. – rwilliams

İlgili konular