dhtmlxtree树介绍


        dhtmlxTree是一个灵活,智能,易用的JS树形组件,它为开发者提供了丰富的特性,包括高级拖拽功能,动态载入节点,自定义视图,无限数量节点等.dhtmlxTree通过AJAX技术进行交互,因此无需刷新页面即可更新数据。重要的是,dhtmlxTree提供了完整的API以节省开发时间。

下面将通过一个简单的例子演示其使用方法。

1.初始配置

 
  1. <! - tree.html引入必要文件 - >
  2. <HEAD>
  3. <link rel = “stylesheet” type = “text / css” href = “path / dhtmlxtree.css” >
  4. <script src = “path / dhtmlxcommon.js” > </ script>
  5. <script src = “path / dhtmlxtree.js” > </ script>
  6. </ HEAD>
  7.  
  8. <! - 自定义js文件必须放在页面底部其中引用的相对路径应该是从页面相对 - >
  9. <script src = “path / tree.js” > </ script>

2.树形容器

 
  1. <! - 资源组树容器 - >
  2. <div id = “resgroupTree” style = width 100 %; 身高98 %; > </ div>

3.简单配置(tree.js)

 
  1. //创建树形对象
  2. var tree = new dhtmlXTreeObject “resgroupTree” “100%” “100%” 0 );

dhtmlXTreeObject方法的四个参数分别是:树形容器ID,树宽度,树高度,根节点的标识。

 
  1. //设置树形节点所用图片路径
  2. setImagePath “路径/ IMGS /” );
  3. //设置默认的数据格式,包括:JSON XML CSV
  4. setDataMode 'XML' );
  5. //设置数据来源,dhtmlxTree支持多种数据格式,这里是XML格式
  6. // file / xmlString:xml文件路径或xml字符串;函数:可选参数,当数据载入之后回调
  7. loadXML的文件/ URL 函数);
  8. loadXMLString 的xmlString 函数);
  9.  
  10. //数据获取
  11. getUserData ID “名称” );
  12. getItemText ID );
  13. VAR selectedItems = getAllChecked (); //获取所有选中的商品,返回的itemId,多个的itemId用逗号分隔
  14.  
  15.  
  16. //设置显示复选框
  17. // mode:true - 显示所有复选框,false - 隐藏所有复选框
  18. // hidden:true - 不渲染复选框,false - 可通过showItemCheckbox()方法显示复选框
  19. enableCheckBoxes 模式隐藏);
  20. //设置为三态复选框
  21. enableThreeStateCheckboxes | );
  22. //设置复选框可用状态
  23. disableCheckbox 的itemId 模式);
  24. //设置复选框选中状态
  25. setCheck ID 模式);
  26. //获取节点的选中状态
  27. VAR checkState = isItemChecked 的itemId );
  28.  
  29. //设置显示单选按钮
  30. enableRadiobuttons );
  31. //设置单选按钮可用状态
  32. enableRadiobuttons 的itemId );
  33. //设置只选一个的单选按钮模式mode:true / false,itemId:这个节点将被默认选中
  34. enableSingleRadioMode 模式的itemId );
  35.  
  36. //设置节点状态
  37. //选中节点mode:true - 节点被选中后会调用设置的回调函数preserve:true - 保存之前的选中
  38. 选择信息的itemId 模式保存);
  39. //清除选中
  40. clearSelection 的itemId );
  41. //使用多选,即可使用ctrl +点击选中多个节点model:true / false,strict:true - 同一级节点才能多选
  42. enableMultiselection 模式严格);
  43. //设置节点图片
  44. setItemImage 的的itemId image0 图像1 ); // image0:打开状态图片,image1:收起状态图片
  45.  
  46. //设置自动载入,可提高性能
  47. setXMLAutoLoading URL );

4. xml文件的格式

下面是一个简要的XML文件示例:

 
  1. <?XML版本= '1.0' 编码= 'UTF-8' ?>
  2. <tree id = “0” >
  3. <item text = “item0” id = “1” >
  4. <userdata name = “dataName0” > data0 </ userdata>
  5. <userdata name = “dataName1” > data1 </ userdata>
  6. ......
  7. <item text = “item1” id = “2” >
  8. .......
  9. </项目>
  10. ......
  11. </项目>
  12. ......
  13. </树>

<item> 标签包含一系列属性,下面是这些属性的说明:

必选属性:

  • 文本:节点名称
  • ID:节点ID

可选属性:

  • 工具提示:节点的尖端
  • IM0:没有子节点的节点图片
  • IM1:展开节点图片
  • IM2:收起节点图片
  • ACOL:节点未选中的背景颜色
  • SCOL:节点已选中的背景颜色
  • 选择:载入时被选中的节点,可以使任意值
  • 打开:节点是否展开,可以使任意值
  • 拨打:选中时执行的函数
  • 勾选:如果有checkbox则选中它(在三态复选框中,1 - 全选,-1 - 未全选)
  • nocheckbox:指示不渲染复选框
  • 孩子:指定一个节点是否有子节点,1 - 有,0 - 没有
  • 电台:如果不为空,则此节点的子节点有单选按钮

可以在  <userdata> 标签中设置其他数据,它只有一个属性  name

5.节点事件

dhtmlxTree支持多种节点操作,包括节点的CRUD以及节点的多种事件,这里只简单介绍几种节点事件。

 
  1. //设置节点点击事件
  2. setOnClickHandler tonclick );
  3. 函数tonclick id {
  4. 控制台日志“项目” + getItemText ID + “选择” );
  5. };
  6. //设置节点选中事件
  7. setOnCheckHandler toncheck );
  8. 函数toncheck id state {
  9. 控制台日志“项目” + getItemText ID + “是” + ((“检查” “未登记” ));
  10. };
  11. //设置开始展开节点事件
  12. setOnOpenStartHandler topenstart );
  13. //设置展开节点结束事件
  14. setOnOpenEndHandler topenend );

6.完整的例子

HTML:

 
  1. <HEAD>
  2. <link rel = “stylesheet” type = “text / css” href = “path / dhtmlxtree.css” >
  3. <script src = “path / dhtmlxcommon.js” > </ script>
  4. <script src = “path / dhtmlxtree.js” > </ script>
  5. <! - 自定义js文件 - >
  6. <script src = “path / tree.js” > </ script>
  7. </ HEAD>
  8. ......
  9. <! - 资源组树容器 - >
  10. <div id = “treeBox” style = width 100 %; height 98 %; > </ div>

JavaScript的:

 
  1. var tree = new dhtmlXTreeObject “treeBox” “100%” “100%” 0 );
  2. setImagePath “path / imgs /” );
  3. loadXML的路径/ 这样做);
  4. setXMLAutoLoading 路径/ 这样做);
  5.  
  6. enableCheckBoxes false ); //不显示复选框
  7.  
  8. setOnClickHandler clickHandler ); //点击节点事件
  9. setOnOpenStartHandler openStart ); //开始展开节点事件
  10. setOnOpenEndHandler openEnd ); //展开节点结束事件
  11.  
  12.  
  13. 函数openStart itemId {
  14. // ...
  15. 返回1 ;
  16. }
  17.  
  18. 函数openEnd itemId ){
  19.  
  20. }
  21.  
  22. 函数clickHandler itemId {
  23.  
  24. }

注意!为提高性能,树的加载都是一级一级的,即报道查看每次都只是通过tree.setOnOpenStartHandler(fun)方法将点击的结点ID发到后台,后台只返回此结点的下一级结点数据,而示例中为了简单起见直接把所有结点数据一起放在了一个文件中,这一点需要注意。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值