弄了几天tree的checkbox了,也试了很多的树 觉得ctree的checkbox真的很好用。
简单介绍下ctreetable控件:
一、用途
制做ctreetable控件主要是用于显示数据结构中常见的树形关系数据。当然用dtree等树形控件也能显示,但不可避免的要把页面分成两个frame:一个显示树形结构,一个显示详细信息。至于菜单树,不在ctreetable控件的应用范围。
二、版权
ctreetable控件基于dtree控件,有些方法是一成不变的照搬过来,就连dtree不支持动态加载也照搬不误。所以dtree控件的版权声明在ctreetable控件仍然有效。在保证ctreetable控件完整性及dtree版权前提下,ctreetable控件可以自由使用和传播。
三、功能
ctreetable控件由于主要用于显示数据,所以dtree控件的链接属性被抛弃了。增加了数据操作方面常用的多选功能(用.config.useChecks控制),选中行高亮显示(用.config.rowSelection控制)。ctreetable控件也支持如前文所示的编辑模式,可以修改结点的属性,但不能修改结构。
常用的应用方式为:用ctreetable显示数据,选中一条或多条数据,再通过按钮或菜单对数据进行操作。通过ctreetable开放的API可以得到需要的信息。
四、局限
dtree控件是用div实现,而ctreetable是用table实现的。所以就某一个结点的关闭,dtree只要一次document.getElementById(id).display="none"操作,ctreetable要做的次数可能有几百次。所以暂时不建议大数据量使用ctreetable控件,直到找到用div实现ctreetable的方法,或其它提高效率的方法。
另外,建议开启.config.closeSameLevel选项,该选项有助于提高打开和关闭节点的效率。
ctreetable预定改进方向是动态加载和div实现以加快速度。
功能改进:
1.动态加载显示节点,但不是从数据库动态加载。
2.改进初始化的算法,提高性能。
3.提供了一些新的选项开关。具体如下:
*复选配置选项:(useChecks=true)
*1.checkSubs: 选中某节点时是否影响其上级节点和下级节点
*2.folderChecks:非叶节点能否作为有效选项
*3.validLevel:folderChecks=true时有效,只有非叶节点的层次不小于validLevel时,才会被认为是有效选项;不影响叶节点
*复选项组合:(useChecks=true)
*1. checkSubs=true, folderChecks=true
*选中某节点,其上级节点和下级节点同时被选中;取消选中该节点,下级节点也取消,但上级节点不变
*2. checkSubs=true, folderChecks=false
*选中某节点,其上级节点和下级节点同时被选中;取消选中某节点,下级节点也取消,上级节点根据其余子节点的选中情况做出反应
*3. checkSubs=false
*选中或取消选中某节点,其上级节点和下级节点均不变;
动态加载选项stepDepth:每次动态加载的深度。默认为0,表示不动态加载。
另附上相关文档