Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 21.11.2008, 17:13
MedvedevA вне форума Посмотреть профиль Отправить личное сообщение для MedvedevA Найти все сообщения от MedvedevA
  № 1  
Ответить с цитированием
MedvedevA

Регистрация: Jul 2006
Сообщений: 54
По умолчанию Открытие узла в компоненте Tree

У меня есть компонент дерево. ХМЛ его состоит из тегов payment, но глубина вложения не известна.

Прмер:
Код:
<payments>
  <payment current_iba_id="111111111" parent_iba_id="" label="Наличные платежи" isBranch="true">
    <payment current_iba_id="111200309" parent_iba_id="111111111" label="УЖКХ. Минск - oFF-line с остатком" isBranch="false"/>
    <payment current_iba_id="111999999" parent_iba_id="111111111" label="УСЛУГИ СВЯЗИ..." isBranch="true">
      <payment current_iba_id="111300502" parent_iba_id="111999999" label="Белсел" isBranch="false"/>
    </payment>
    <payment current_iba_id="100300668" parent_iba_id="111111111" label="ByFly. Гомельская обл." isBranch="false"/>
    <payment current_iba_id="199100501" parent_iba_id="111111111" label="Орифлэйм" isBranch="false"/>
    <payment current_iba_id="777777777" parent_iba_id="111111111" label="999999999999999999999999999999999999999999999" isBranch="true">
      <payment current_iba_id="111200309" parent_iba_id="777777777" label="УЖКХ. Минск - oFF-line с остатком" isBranch="false"/>
      <payment current_iba_id="111200301" parent_iba_id="777777777" label="УЖКХ. Минск" isBranch="false"/>
    </payment>
  </payment>
</payments>
МНЕ НУЖНО НАЙТИ, АКТИВИЗИРОВАТЬ И ОТКРЫТЬ ОПРЕДЕЛЁННЫЙ УЗЕЛ ДЕРЕВА с заданными атрибутами current_iba_id="777777777" и parent_iba_id="111111111". Пытаюсь найти искомый узел рекурсивно(так как не знаю глубину вложения).

Код:
 var myXML:XML= XML(resultXmlList);
    myTree.dataProvider=myXML;
    var node:XML = getSelectNodeFromXML(resultXML.parent_iba_id[0], resultXML.current_iba_id[0], myXML)
    myTree.validateNow(); 
    myTree.expandItem(node, true);
    myTree.selectedItem = node;
  
  
  public function getSelectNodeFromXML(parent_iba_id:String, current_iba_id:String, xml_tmp:XML):XML
         {             
            var children:XMLList = XMLList(xml_tmp).children();
            for(var i:Number=0; i < children.length(); i++)
            {  		
                                       	
                if( children[i].@current_iba_id == current_iba_id &&  children[i].@parent_iba_id == parent_iba_id) {
                
                     return children[i];
                }else{                   	
                   	if( children[i].@isBranch=="true"){                   		
                   		var node:XML =getSelectNodeFromXML(parent_iba_id, current_iba_id, children[i]);                   		
                   		if( node != null ) return node;
                    }
                }
            } 
            return null;            	    	
         }
Узел то находит, но когда пытается открыть узел в дереве myTree.expandItem(node, true); почему то не срабатывает(переменная передаётся как копия наверно). Как открыть узел(любой способ)?

Добавлено через 43 минуты
Сейчас сделал по другому и все равно находит, но не активизирует и не открывает узел:
Код:
var myXML:XML= XML(resultXmlList);
 myTree.dataProvider=myXML;
var subXML:XMLList=myXML..payment.(@parent_iba_id == resultXML.parent_iba_id[0] && @current_iba_id == resultXML.current_iba_id[0]);
Alert.show("subXML= "+subXML.toXMLString(),"Сообщение");//Возвращает нужный узел
myTree.expandItem(subXML, true, false);
             	    		
 myTree.selectedItem = subXML;
Alert.show("selectedItem= "+myTree.selectedItem,"Сообщение");//Возвращает null


Последний раз редактировалось MedvedevA; 21.11.2008 в 17:58.
Создать новую тему   Часовой пояс GMT +4, время: 16:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.