2016-03-31 16 views
0

tutmak ben bir Webservice her X saniye arayarak güncel tutmak için gereken bir vekil mağazaya binded bir ağaç ızgara var. Bu mağazada N kayıt var ve bunların hepsini güncellemem gerekiyor (örneğin bu kayıtlar görev yürütmeleridir ve ilerlemeyi güncellemeliyim).ExtJS 6 - Güncelleme vekil mağaza ve akımı şebekeye durumunu

nasıl genişletilmiş şube kaybetmeden bu tabloyu "yeniden yükle" olabilir? Mağaza temizlendi ve yeniden doldurulduğu gibi görünüyor, mağaza yeni kayıtları eklemek ve öncekileri güncellemek için yeterince akıllısa, bu iyi olur mu?

cevap

3

Ben aynı sorunu karşı karşıya düşünüyorum. Arka uçlara, düğümlerin şu anda genişletildiğini söyleyen, depoyu yeniden yüklerken ek bir parametre göndermeyle çözdüm. Sonra genişletilmiş düğümleri yeniden yüklemeye ihtiyaç duyduğum için genişletilmiş düğümlerin verilerini ekledim (genişletilmiş olmayanlar görünür değil ve genişletme üzerine yüklenir).

Yani durumda eklemek olabilir ve istek genişletilmiş düğümler hakkında bilgi ekleriz store "beforeload" olayına olay işleyicisi. Ardından yük olayında genişletilen düğümleri genişletin.

store.on("beforeload", function(store, operation) { 
    var root = store.getRoot(), 
     saveExpandedNodesIds = function(node) { 
      if (node.childNodes) { 
       Ext.Array.each(node.childNodes, function(rec){ 
        if (rec.get('expanded')) { 
         // save to tree object 
         tree.expandedNodes[]= rec.get('id'); 
         saveExpandedNodesIds(rec); 
        } 
       }); 
      } 
     } 
    saveExpandedNodesIds(root); 
}); 

Ve yük İstersen sonradan bir pasajı yazabilir genişletilmiş durumu

store.on("load", function() { 
       fn: function(store) { 
        /** 
        * If tree has expanded nodes, expand them after load 
        */ 
        if(tree.expandedNodes > 0) { 
         while(tree.expandedNodes.length > 0) { 
          var item = tree.expandedNodes.shift(); 
          if (store.getById(item) !== null) { 
           store.getById(item).expand(); 
          } 
         } 
        } 
       } 
     }); 

geri yükleyin:

Yani, yük öncesi düğümleri kaydedin.

+0

Evet! Güzel bir yaklaşım gibi gözüküyor, bunu denemeden önce cevap olarak işaretlemeyeceğim, teşekkürler. –

+0

Henüz denedin mi? Tamamsa cevap olarak işaretle. – taubi19

+0

Evet, cazibe gibi çalıştı! Çok teşekkür ederim! (Lütfen yazınızı "işlev" yerine "funciton" yazdığınız ilk satırda düzenleyin). –