`
javahacker2
  • 浏览: 43876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

dhtmlXTreeObject 树实现

阅读更多

dhtmlXTreeObject这种树还是挺实用的,首先我觉得其配置不是特别复杂,也可以实现右键功能,异步加载等;当然,要说的是,这个不是效果特别绚的树,在此给大家仅作参考:

 

需导入的JS或CSS如下:

<link rel="stylesheet" type="text/css" href="<%=request.getContextPath()%>/css/dhtmlxtree.css">

<script type="text/javascript" src="<%=request.getContextPath()%>/js/dhtmlxcommon.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/js/dhtmlxtree.js"></script>

 

下面为部分实现:

          //功能菜单树
                  var navFucnId=<%=navFucnId%>;
              tree=new dhtmlXTreeObject("treeboxbox_tree","100%","100%","root"); 
              tree.setSkin("dhx_skyblue");
              tree.setImagePath("<%=request.getContextPath()%>/images/tree/");
              tree.setOnClickHandler(doOnClick);
              tree.loadXML("<%=request.getContextPath()%>/system/funcNodeAction!getSystemMenuFunc.do?navFuncId="+navFucnId,function(){tree.openItem("root")});
              //tree.loadXML("tree.xml",function(){tree.openItem("root")});
              function doOnClick(id){ 
                var nowStr = "";
                var setlectNode = tree.getSelectedItemId().split(",");
                var temp = tree._globalIdStorageFind(setlectNode[0]);
               // alert(temp.label);
                if(temp.parentObject.id != 0){
                while(typeof(temp.parentObject) == "object" ){
                 nowStr =  temp.label + ">>" + nowStr;
                 temp = temp.parentObject;
                }     
               
                var $now = $(window.parent.frames["mainRightFrame"].frames["currentFrame"].document).find("span#now");
                var str = $now.text().toString().substr(0,5);
               // alert(str);
                       $now.html("<font color='#36106B' >"+str+nowStr.substr(0,nowStr.length-2)+"</FONT>" );
                       
                       //把节点id等相关信息传入到当前位置页面
                     //  var $treeInfo = $(window.parent.frames["mainRightFrame"].frames["currentFrame"].document).find("span#treeInfo");
                       var $treeInfo = $(window.parent.frames["navFrame"].document).find("span#treeInfo");
                       var selectNodeId=tree.getSelectedItemId();
                       //alert(selectNodeId);
                       var hasChildren=tree.hasChildren(selectNodeId);
                       
                       var initTreeId=selectNodeId;
                       if(hasChildren==0){ 
                           //根结点
                        while(tree.getParentId(selectNodeId)!='root'){
                         var parentId=tree.getParentId(selectNodeId);
                         initTreeId=initTreeId+','+parentId;
                         selectNodeId=parentId;
                        }
                        //alert(initTreeId);
                        initTreeId=initTreeId+','+'11000000'+',99999999';
                        //alert(initTreeId);
                        $treeInfo.html("<input type='hidden' value='"+initTreeId+"' id='funcNodeId' name='funcNodeId' />");
                       }else{
                        $treeInfo.html("<input type='hidden' value='' id='funcNodeId' name='funcNodeId' />");
                       }
               }
               
               var myUrl = tree.getUserData(id,"url"); 
              // alert("myUrl="+myUrl)
               if(myUrl != undefined){
                // window.parent.frames["mainRightFrame"].frames["workAreaFrame"].location.href=myUrl;
                openPage(tree._globalIdStorageFind(setlectNode[0]).label, myUrl);
                return true;
               }
              };

 

 

注:JS写得有点乱,对大家来说,中间有些是没有用的东西

1.tree.loadXML("<%=request.getContextPath()%>/system/funcNodeAction!getSystemMenuFunc.do?navFuncId="+navFucnId,function(){tree.openItem("root")});
这个主要是加载树,去对应的后台方法将树返回,并展开根结点

2. tree.setOnClickHandler(doOnClick);  其中的doOnClick 为下面的JS方法,相当于单击树结点触发的方法
3. var myUrl = tree.getUserData(id,"url"); 这个是在树中取到当前点击节点的URL,当然,树结点的信息是后台返回的,有url对应信息
上面是我认为对使用这个树有用的地方,希望对看的朋友有帮助吧,网上有许多对其方法及属性的资料的

分享到:
评论

相关推荐

    基于dhtmlxtree构建动态维护树

    本文介绍了如何使用DHTMLXTree组件构建一个动态维护树的完整流程,从数据库设计到前后端代码实现都进行了详细的说明。通过这种方式可以有效地管理具有层级关系的数据集,并为用户提供友好易用的操作界面。当然,这...

    树形菜单的例子

    本教程将围绕“树形菜单”的实现进行详细讲解。 在Web页面上实现树形菜单,我们可以利用HTML、CSS以及JavaScript(如jQuery或纯JavaScript)来创建。以www.dhtmlx.com为例,这是一个提供丰富Web UI组件的网站,其中...

    ajax动态加载树,支持动态刷新

    本文将深入探讨如何利用Ajax实现动态加载树形结构,并结合dhtmlx库中的dhtmlxMenu和dhtmlxTree组件,实现支持右键菜单、复选框、拖拽以及排序功能,同时支持json和xml格式的数据加载。 首先,我们要理解Ajax的工作...

    功能齐全的JS树形菜单

    本文将深入探讨如何使用JS实现功能齐全的树形菜单,并基于提供的“dhtmlxTree”库进行详解。 首先,`dhtmlxTree`是一个强大的JavaScript组件,它提供了丰富的功能,如可折叠的节点、拖放操作、多选、自定义图标以及...

    dhtmlxtree 的右键菜单

    dhtmlxtree 是一个流行的JavaScript库,用于创建交互式的树形数据结构,广泛应用于网站和Web应用程序中,用于展示层次化的信息。其强大的功能之一是支持右键菜单,这使得用户可以通过鼠标右键点击节点来执行各种操作...

    dhtmlxTree树形控件JavaScript

    调用`dhtmlXTreeObject`函数并传入容器的ID,然后调用`init`方法来初始化控件。 3. **加载数据** 数据可以以XML或JSON格式提供。dhtmlxTree支持动态加载,可以在用户滚动或点击节点时按需加载子节点。通过调用`...

    JS树:dhtmlxTree

    5. **数据绑定**:可以与服务器端数据源进行绑定,实现数据的实时更新。 6. **图标和属性**:每个节点可以设置不同的图标和属性,通过这些图标和属性可以更直观地展示节点状态。 7. **拖放功能**:支持拖放操作,...

    javascript 树形菜单之dhtmxtree教程详解

    在这个教程中,我们将深入探讨如何使用DHTMLXTREE实现JavaScript树形菜单。 首先,理解DHTMLXTREE的基本概念是至关重要的。这个工具的核心是XML数据,它定义了菜单的结构和每个节点的属性。每个节点可以包含子节点...

    DhtmlxTree-dhtmlxmenu实现在节点上右键弹出菜单

    3、dhtmlXTreeObject.prototype._createItem方法是构造树形菜单上元素的具体实现方法。看这个方法的具体操作,可以发现它为每一个节点构建了一个table,节点的内容(即名字)放置在一个span中。 4、考虑到...

    dhtmlxTree 树菜单.docx

    dhtmlxTree 支持多种事件监听器,如 `onBeforeItemOpen`, `onAfterItemOpen` 等,可用于实现复杂的用户交互逻辑。 ```javascript // 监听节点打开前的事件 tree.attachEvent("onBeforeItemOpen", function (itemId)...

    dhtmlxtree

    通过以上介绍,我们对dhtmlxtree有了深入的理解,它是一种强大的工具,能够帮助开发者轻松实现动态树的管理和操作。通过熟练掌握其API和事件机制,可以构建出功能丰富、用户体验优秀的Web应用。

    DHtmlXTree应用指南.pdf

    其中,`dhtmlXTreeObject`是创建树形对象的构造函数,参数依次为:容器ID、宽度、高度和根节点ID(通常设置为0,表示虚拟的根节点,在界面上不显示)。 ##### 4.2 初始化参数设置 创建树形对象后,还需要进行一些...

    dhtmlxTree

    - **异步加载**:对于大数据量的树,可以实现按需加载,提高页面性能。 ### 4. 自定义行为和样式 DHTMLX Tree允许用户自定义节点的显示和行为。通过调整CSS样式,可以改变节点的外观,如字体、颜色、边框等。同时...

    dhtmlXTree API

    首先,`dhtmlXTreeObject` 对象是这个API的基础,它代表了一个树形控件实例。通过创建这个对象,开发者可以初始化树结构,并对其进行各种操作。API提供了多种方法来控制树的生命周期,包括但不限于: 1. **初始化**...

    dhtml1.6 pro

    var tree = new dhtmlXTreeObject("tree_here", "100%", "100%", 0); tree.setImagePath("dhtmlxTree/imgs/"); tree.enableSmartXMLParsing(true); tree.loadXML("data.xml"); // 加载节点数据 ``` 这个例子...

    dhtmlxtree例子

    使用`new dhtmlXTreeObject("bodydata","100%","100%",0)`创建一个树对象,其中"bodydata"是树的容器ID,"100%"分别代表宽度和高度,0表示不显示图标。 3. **设置图片路径**: `setImagePath("&lt;%=imgPath%&gt;common...

    Dhtmlxtree的例子

    var tree = new dhtmlXTreeObject("treebox", "100%", "100%", "auto"); tree.setSkin("dhx_skyblue"); // 设置皮肤 tree.loadXML("data.xml"); // 加载XML数据 ``` 4. 在XML数据加载完成后,Dhtmlxtree会自动...

    dhtmlXTree1.6

    **dhtmlXTree1.6** 是一个基于JavaScript的...其丰富的特性、良好的文档支持和广泛的社区资源使其成为实现树形数据展示的理想选择。通过熟练掌握dhtmlXTree的用法,开发者能够创建出用户友好、功能丰富的Web应用程序。

    DHTMLX中文使用手册2.0版本.doc

    在DHTMLX Tree中,你可以实现动态加载XML数据,这使得在处理大量数据时能有效提高性能。它还支持节点的拖放功能,不仅可以在同一棵树内部移动,还可以在不同树之间或不同框架之间进行。此外,DHTMLX Tree提供了带多...

Global site tag (gtag.js) - Google Analytics