Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> yahoo дерево, динамическая загрузка данных, yui 2.3.1, надо очистить память 
:(
    Опции темы
Adept
Дата 8.4.2008, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 210
Регистрация: 10.7.2003
Где: Санкт-Петербург

Репутация: нет
Всего: 2



Проблема в том, что данные подгружаются из бд только при первом открытии ветки, при повторном данные берутся из памяти, т.е. если добавлю новую ветку, то она неотобразится, если её родитель был открыт до этого.
Пробывал прилипить tree.removeChildren(node);
Написано, что она используется для удаления чилдренов этой ноды из памяти и сброса флага динамической загрузки.
Но ничего неполучается
Хелп ми плиз, если вы юзали это дерево.
Мое дерево:
Код

<script type="text/javascript">
YAHOO.example.treeExample = function() {
    var tree, currentIconMode, nodeType;   
        function loadNodeData(node, fnLoadComplete)  {                     
            var nodeLabel = encodeURI(node.label);
            //tree.removeChildren(node);                                  
            var sUrl = "tree.htm?nodeLabel="+nodeLabel;
            var callback = {
                success: function(oResponse) {
                    YAHOO.log("XHR transaction was successful.", "info", "example");
                    YAHOO.log(oResponse.responseText);                   
                    var oResults = eval("(" + oResponse.responseText + ")");
                    if((oResults.ResultSet.Result) && (oResults.ResultSet.Result.length)) {
                        if(YAHOO.lang.isArray(oResults.ResultSet.Result)) {
                            for (var i=0, j=oResults.ResultSet.Result.length; i<j; i++) {                                
                                var tempNode = new YAHOO.widget.TextNode({label:oResults.ResultSet.Result[i][0], type:oResults.ResultSet.Result[i][1]}, node, false);
                                if(oResults.ResultSet.Result[i][1]==0){
                                  tempNode.labelStyle = "icon-dep";
                                }else{
                                  tempNode.labelStyle = "icon-user";
                                }                                
                                tempNode.onLabelClick=onLabelClick; 
                            }
                        } else {
                            var tempNode = new YAHOO.widget.TextNode({label:oResults.ResultSet.Result[0], type:oResults.ResultSet.Result[1]}, node, false);
                            if(oResults.ResultSet.Result[1]==0){
                                  tempNode.labelStyle = "icon-dep";
                            }else{
                                  tempNode.labelStyle = "icon-user";
                            }                            
                            tempNode.onLabelClick=onLabelClick; 
                        }
                    }
                    oResponse.argument.fnLoadComplete();
                },               
               
                failure: function(oResponse) {
                    YAHOO.log("Failed to process XHR transaction.", "info", "example");
                    oResponse.argument.fnLoadComplete();
                },               
               
                argument: {
                    "node": node,
                    "fnLoadComplete": fnLoadComplete
                },               
               
                timeout: 7000
            };            
            
            YAHOO.util.Connect.asyncRequest('GET', sUrl, callback);
        }

        function buildTree() {          
           tree = new YAHOO.widget.TreeView("treeDiv1");
           tree.setDynamicLoad(loadNodeData);                  
           var root = tree.getRoot();
           tree.removeChildren(root);       //вот тут вставил эту хрень   
           var aTreeRoot = new Array();
            <c:forEach var="item" items="${refData}" >  
            <c:if test="${item.key == 'departments'}">
              <c:forEach var="department" items="${refData[item.key]}" > 
                <c:if test="${empty department.pid}">               
                  aTreeRoot.push('<c:out value="${department.name}"/>');
                </c:if>
              </c:forEach>                   
            </c:if>         
         </c:forEach> 
           var aStates = aTreeRoot;
           for (var i=0, j=aStates.length; i<j; i++) {
                var tempNode = new YAHOO.widget.TextNode({label:aStates[i],type:0}, root, false);
                tempNode.labelStyle = "icon-dep";
                tempNode.onLabelClick=onLabelClick;  
           }        
           tree.draw();
        }
        var onLabelClick = function(oNode) {
          //tree.removeChildren(oNode.data);   //и тут пробывал
                                           
          if(oNode.data.type == 0){   
            document.getElementById('selectedDep').value = oNode.data.label;  
            document.getElementById('selectedUser').value = 'null';            
          }   
          if(oNode.data.type == 1){
             document.getElementById('selectedUser').value = oNode.data.label;
             document.getElementById('selectedDep').value = 'null';            
          }           
       }
    return {
        init: function() {
            buildTree();
        }
    }
} ();

//once the DOM has loaded, we can go ahead and set up our tree:
YAHOO.util.Event.onDOMReady(YAHOO.example.treeExample.init, YAHOO.example.treeExample,true)
</script>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Применение библиотек | Следующая тема »


 




[ Время генерации скрипта: 0.0384 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.