Dynatree не перезагружается с новыми узлами программно

Я загружаю Dynatree программно, когда страница загружается следующим образом

function loadTree(data)
{
   var rootNode = $("#tree").dynatree("getRoot");
   $.each(data, function () {
      var childNode = rootNode.addChild({
               title: this.agent_code + ' - ' + this.holder_name,
               tooltip: this.holder_name,
               isFolder: true,
               key:this.agent_code,
       });
    });
 }

Теперь, когда я получаю новые данные с сервера и хочу загрузить новые узлы, он не удаляет старый узел.

function reload(data)
   {
        $("#tree").dynatree("getRoot").visit(function(node){
           node.remove();
        });
        loadTree(data)
   }

Приведенный выше код удаляет только один узел. Что мне здесь не хватает заранее спасибо

ОБНОВЛЕНИЕ Я попытался с обходным путем через следующий код

function reload(data)
   {
        $("#tree").remove();
        $('#test').html('<div id="tree"></div>');
        $('#tree').dynatree(); //reinitialize the tree
        loadTree(data);
   }

Он перезагружается, но затем не может заполнить дочерние узлы с помощью отложенной загрузки.

2 ответа

Решение

Это удалит все узлы, которые вы добавили во время начальной загрузки:

$("#tree").dynatree("getRoot").removeChildren();

Наконец-то у меня это работает. Я изменил код с этой строкой

 function reload(data)
   {
             //get all the available parent nodes
             var n = [];
             $("#tree").dynatree("getRoot").visit(function(node){
                n.push(node.data.key);
              });
              //delete each node one by one
              var tree = $("#tree").dynatree("getTree");
              $.each(n,function(index,value){
                var Cnode =  tree.getNodeByKey(value);
                if(Cnode != null) Cnode.remove();
              });
              loadTree(data);
   }

Я уверен, что это не лучшее решение. Так что, если у кого-то есть лучший способ сделать это, пожалуйста, отправьте другой ответ.

Другие вопросы по тегам