Start Building Professional
Web Apps Today


 
Categories Question details Back To List
Question  posted by JasonC on Oct 02, 2009 07:52
open dhtmlx forum
Using dynamical loading and save/open states

Hello. Using professional version of dhtmlxtree.

I have a tree that I am using Dynamical loading with, and I use event onOpenEnd to saveOpenStates (this works, as I can see the cookie(s) and nodes as they are expanded).

Is it possible to to loadOpenStates on page refresh and open dynamical nodes ?

Thank you for all help.

J.
Answer posted by Stanislav (support) on Oct 02, 2009 10:29
loadOpenStates command is compatible with dyn. loading modes ( it will open existing items, wait till child items loaded and continue opening and loading if necessary ) 
You need not any extra steps, just use loadOpenStates same as in normal case. 
Answer posted by JasonC on Oct 02, 2009 12:30
Hi Stanislav,

Thanks for the quick reply.

Based on your answer, I'm obvioulsy doing something wrong... Here is the code I use to instantiate the tree:

tree01=new dhtmlXTreeObject("idTree01","100%","100%",0);
tree01.setImagePath("/includes/dhtmlxTree/codebase/imgs/csh_vista/");
tree01.enableMultiLineItems(true);
tree01.setDragBehavior("complex");
tree01.attachEvent("onDrag",fnDoOnDrag);
tree01.attachEvent("onOpenEnd",tree01.saveOpenStates);
tree01.enableDragAndDrop(true,false);
tree01.setXMLAutoLoadingBehaviour("id");
tree01.loadXML("/ajax/ajaxReportEngine.php?mode=ListAvailableTree", function() {
    tree01.loadOpenStates()
});
tree01.setXMLAutoLoading("/ajax/ajaxReportEngine.php?mode=ListAvailDyn");

Is there anything else I should be doing to get this to work? I am not getting errors, but it is simply not working.

Any and all help is appreciated.

Best regards.

J.

Answer posted by Stanislav (support) on Oct 08, 2009 07:50
a) instead of
             tree01.attachEvent("onOpenEnd",tree01.saveOpenStates);
you need to have


b) to have this correct for multilevel opening, the code need to be changed as
tree01.loadXML("/ajax/ajaxReportEngine.php?mode=ListAvailableTree", function() {
             tree01.attachEvent("onAllOpenDynamic",function(){
                      //code here will be executed only when loadOpenStates will load all data from server 
                      tree01.attachEvent("onOpenEnd",function(){
                                 tree01.saveOpenStates()
                      });
             });
             tree01.loadOpenStates()
});