没有合适的资源?快使用搜索试试~ 我知道了~
首页DHTMLX中文使用手册2.0版本.doc
DHTMLX中文使用手册2.0版本.doc

DHTMLX中文使用手册2.0版本.docDHTMLX中文使用手册2.0版本.docDHTMLX中文使用手册2.0版本.docDHTMLX中文使用手册2.0版本.doc
资源详情
资源评论
资源推荐

DHTMLX Tree 中文开发指导(转载)
浮石 收录于 2010-03-10 阅读数: 公众公开 原文来源
最近开发项目使用到了 dhtmlXtree 做权限设置,看了网上相关的中文资料很少,就把官方的
资料翻译了下,一共分 2 部分,API 可以参考官方文档:http://dhtmlx.com/docs/
download.shtml
效果图如下(三态树):
dhtmlXTree 指南与实例
主要特性
多浏览器/多平台支持
全部由 JavaScript 控制
动态加载
XML 支持
大数据树动态翻译(智能 XML 解析)
拖拽(同一个树,不同的树之间,不同的框架之间)
带多选框(CheckBox)的树(两态/三态)
定制图标(使用 JavaScript 或 xml)
内容菜单(与 dhtmlxMenu 集成)
结点数据为用户数据
多行结点
高稳定性
支持 Macromedia Cold Fusion
支持 Jsp
支持 ASP.NET
支持以下浏览器
IE 5.5 或更高版本
Mac OS X Safari
Mozilla 1.4 或更高版本
FireFox 0.9 或更高版本
Opera (Xml 加载支持取决于浏览器版本)
使用 dhtmlXTree 进行开发
在页面初始化对象
<div id="treeBox" );
tree.enableCheckBoxes(false);
tree.enableDragAndDrop(true);
</script>
构造器有以下参数:
加载树的容器对象(应该在调用构造器之前被加载)
树的宽度
树的高度

树根的父结点的 id(超级根)
指定树的其他参数:
setImagePath(url) - 设置树所使用的图片目录地址
enableCheckBoxes(mode) - 打开/关闭多选框(默认打开)
enableDragAndDrop(mode) - 打开/关闭拖拽模式
设置事件处理
1.5 以上的版本支持一种新的设置事件的方式-使用 attachEvent 方法.设置一个事件处理方
法需要知道事件的名字和所调用的方法.可用的事件名参考这里(以后会翻译),在事件处理方
法中,可以这样引用树对象:
<div id="treeBox" ,onNodeSelect)//set function object to call on node select
//see other available event handlers in API documentation
function onNodeSelect(nodeId){
...
}
</script>
很多时候函数要从参数中获取值.关于传值得详细信息请参考事件文档(以后翻译)
使用脚本增加结点
<script>
tree=new dhtmlXTreeObject('treeBox',"100%","100%",0);
...
tree.insertNewChild(0,1,"New Node
1",0,0,0,0,"SELECT,CALL,TOP,CHILD,CHECKED");
tree.insertNewNext(1,2,"New Node 2",0,0,0,0,"CHILD,CHECKED");
</script>
第 4-7 的参数都是 0(选择后调用的方法,所使用的图片)意味着都使用默认值
最后一个使用逗号分隔的参数可以是以下值(只能是大写):
SELECT - 插入后选择此结点
CALL - 在选择时调用方法
TOP - 在最上方插入此结点
CHILD - 此结点有子结点
CHECKED - 此结点的多选框被选中(如果有的话)
使用 XML 加载数据
<script>
tree=new dhtmlXTreeObject('treeBox',"100%","100%",0);
tree.setXMLAutoLoading("http://127.0.0.1/xml/tree.xml");
tree.loadXML("http://127.0.0.1/xml/tree.xml");//load root level from xml
</script>
在调用时,被打开的结点 id(就像 url 参数一样)将会被增加到初始化 XMLAutoLoading(url) 的
URL 地址上去
调用 loadXML(url)方法不会增加 id 到 url 地址上
调用无参的 loadXML()将会使用 XMLAutoLoading(url)所指定的 url 地址

XML 语法:
<?xml version='1.0' encoding='iso-8859-1'?>
<tree id="0">
<item text="My Computer" id="1" child="1" im0="my_cmp.gif" im1="my_cmp.gif"
im2="my_cmp.gif" call="true" select="yes">
<userdata >
PHP 脚本需要在页面头添加以下代码:
<?php
if ( stristr($_SERVER["HTTP_ACCEPT"],"application/xhtml+xml") ) {
header("Content-type: application/xhtml+xml"); } else {
header("Content-type: text/xml");
}
echo("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n");
?>
<tree>结点是必须有的.指定加载数据的父结点.这个 id 参数指定了父结点 id.加载根层需要
在创建树的时候指定 id:new myObjTree(boxObject,width,height,0)
<itrem>可以包含(为了一次加载多层结点)或者不包含子结点.并且可以包含<itemtext>标签,
可以为结点标签(label)增加一些 HTML (text 属性将会被忽略)
<item id="123">
<itemtext><![CDATA[<font color="red">Label</font>]]></itemtext>
</item>
必要属性有:
text - 结点显示的标签
id - 结点 id
可选属性有:
tooltip - 鼠标放在结点上提示的信息
im0 - 没有子结点的结点显示的图片(将会从 setImagePath(url)方法指定的路径去获取图片)
im1 - 包含子结点的结点展开时显示的图片
im2 - 包含子结点的结点关闭时显示的图片
aCo1 - 没有选中的结点的颜色
sCol - 选中的结点的颜色
select - 在加载时选择此结点(可以为任意值)
style - 结点文本风格
open - 展开此结点(可以为任意值)
call - 选择时调用函数(可以为任意值)
checked - 如果存在的话,选择此结点的多选框(可以为任意值)
child - 指定结点是否有子结点(1:有,0:无)
imheight - 图标的高度
imwidth - 图标的宽度
topoffset - 设置结点和上层结点间的偏移量
radio - 如果非空 则此结点的子结点会有单选按钮

直接在 XML 里面设置用户数据可以使用<userdata>标签,此标签只有一个参数:
name
和 value 去指定用户数据值
为结点定制图标
有两种方法去定制结点图标,这取决于增加结点的方式.注意:树将会从 setImagePath(url)方
法指定的路径去获取结点图片.
Javascript 的方式:使用 insertNewChild(...)或者 insertNewNext(...)方法的参数指定
<script>
var im0 = "doc.gif";//icon to show if node contains no children
var im1 = "opened.gif";//if node contains children and opened
var im2 = "closed.gif";//if node contains children and closed
tree.insertNewItem(0,1,"New Node 1",0,im0,im1,im2);
tree.insertNewNext(1,2,"New Node 2",0,"txt.gif","opened.gif","closed.gif");
</script>
XML 的方式.使用<item>标签的属性:
<?xml version='1.0' encoding='iso-8859-1'?>
<tree id="0">
<item text="My Computer" id="1" child="1" im0="doc.gif" im1="my_opened.gif"
im2="my_closed.gif">
</tree>
im0 - 没有子结点的结点显示的图片(将会从 setImagePath(url)方法指定的路径去获取图片)
im1 - 包含子结点的结点展开时显示的图片
im2 - 包含子结点的结点关闭时显示的图片
构建动态树
如果树包含很大数量的结点(或者你只是不想浪费时间去加载隐藏的结点),按照需要去加载
他们似乎是更好的选择,而不是一次性的全部加载进来.因此我们使用 XML 动态加载树.请参
考"使用 XML 加载数据"或者查阅"Dynamical Loading in dhtmlxTree v.1.x"
操作结点
一些使用树的方法来操作结点的例子:
<script>
tree=new dhtmlXTreeObject('treeboxbox_tree',"100%","100%",0);
...
var sID = tree.getSelectedItemId();//get id of selected node
tree.setLabel(sID,"New Label");//change label of selecte node
tree.setItemColor(sID,'blue','red');//set colors for selected node's label (for not selected
state and for selected state)
tree.openItem(sID);//expand selected node
tree.closeItem(sID);//close selected node
剩余16页未读,继续阅读












mmmzzc
- 粉丝: 3
- 资源: 34
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论12