2013-04-23 64 views
0

我有一个懒惰的加载DynaTree在最新版本1.2.4中,并得到challange,以提供当前选定节点的路径。 我在根节点上做了一个循环来构建树的第一层。点击其中一个根节点后,树会展开并通过延迟加载下一个元素进行选择。 现在树的第三维中的元素是已知的,但我如何在JSON结构中提供受影响的节点? 一个简单的添加到最后还会添加根树中的元素。Dynatree初始加载子女

$(function(){ 
     // Attach the dynatree widget to an existing <div id="tree"> element 
     // and pass the tree options as an argument to the dynatree() function: 
     $("##tree").dynatree({ 
      clickFolderMode: 3, 
      persist: false, 
      autoCollapse: true, 
      onActivate: function(node) { 
       // A DynaTreeNode object is passed to the activation handler 
       // Note: we also get this event, if persistence is on, and the page is reloaded. 
       if(node.data.href){ 
        // use href and target attributes: 
        window.location.href = node.data.href;     
       } 

      }, 
      onLazyRead: function(node){ 
       node.appendAjax({url: "#intranetpath#remote/lopTreeLoader.cfc?method=getNodes", 
            data: {"key": node.data.key, // Optional url arguments 
              "mode": "all" 

              }, 
            // (Optional) use JSONP to allow cross-site-requests 
            // (must be supported by the server): 
      //      dataType: "jsonp", 
            success: function(node) { 
             // Called after nodes have been created and the waiting icon was removed. 
             // 'this' is the options for this Ajax request 
             }, 
            error: function(node, XMLHttpRequest, textStatus, errorThrown) {          
             // Called on error, after error icon was created. 
             }, 
            cache: false // Append random '_' argument to url to prevent caching. 
            }); 
      }, 
      children: [ // Pass an array of nodes. 
       <cfloop query="qDivision"> 
       { key:"#qDivision.obj_uuid#" , 
        title: "#qDivision.f_division_name#", 
        activate:false, 
        expand:#qDivision.expand#, 
        select:false, 
        isLazy:true, 
        <cfif qDivision.clickable> 
         addClass:"boldText", 
         href: "/program.helios/lop/index.cfm?obj_uuid=#qDivision.obj_uuid#", 
        </cfif> 
        icon:"../../skin/icons/idivision.gif"} 

        <cfif qDivision.currentrow NEQ qDivision.recordcount>,</cfif> 
       </cfloop> 



      ] 
     }); 
    }); 

我如何初始化所有节点到所选节点的直接路径中的树?

回答

0

子对象可能又包含一个children属性:

children: [ // Pass an array of nodes. 
       <cfloop query="qDivision"> 
       { key:"#qDivision.obj_uuid#" , 
        title: "#qDivision.f_division_name#", 
        activate:false, 
        children: [{title: "foo"}, ...]