字段名 | 字段类型 | 必填 | 默认值 | 其他 | 索引 | 说明 |
---|---|---|---|---|---|---|
id | 数字 | 自动编号 | 有(无重复) | 节点的唯一编号 | ||
p_id | 长整型 | 是 | 0 | 节点父亲编号值 | ||
name | 文本 | 新建文件夹 | 不允许为空字符串 | 节点名称 | ||
porder | 长整型 | 有(有重复) | 节点的先序排序号 | |||
dep | 长整型 | 1 | 节点深度值 | |||
del | 布尔 | Flase | 是否删除 | |||
附注:字段名仅仅为默认的字段名,如果您不指定其他的字段名的话,程序就假定您的字段和表名名为默认的。 |
2.在需要使用的页面使用服务器包含命令:!--#include file="dbtree.asp" -->
3.初始化一个对象实例,然后初始化数据库联接字符串和其他变量
%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
% option explicit 'TRANSACTION = Required%>
!--#include file="dbtree.asp" -->
%
Dim MM_btree_STRING '数据库联接字符串
MM_btree_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= "server.mappath("tree.mdb")
%>
%
dim tree
set tree=new DBtree
tree.conn=MM_btree_STRING '指定联接字符串
tree.table="tree"'制定表名
tree.id="id"'制定列名
tree.p_id="p_id"
tree.porder="porder"
%>
4接下来就可以对树进行各种操作了:
实例:
1.将树显示为列表:
%
Dim arr1(1,0),arr2(1,0),cache
arr1(0,0) = "ul>"
arr1(1,0) = "/ul>"
arr2(0,0) = "li>{name}"
arr2(1,0) = "/li>"
cache = tree.display(0,-1,arr1,arr2,"relative")
response.write(cache)
%>
2.插入,删除等
select case request.Form("submit")
case "移动"
msg =tree.moveNode(request.Form.Item("src"),request.Form.Item("des"))
case "删除"
msg =tree.delNode(request.Form("node"),false)
case "永久删除"
msg =tree.delNode(request.Form("node"),true)
case "恢复"
msg =tree.undel(request.Form("undel"))
end select
3.其他的操作请参见实例
4.API
整个程序是一个类,提供插入、移动、删除、显示、输出为列表控件等接口,以后功能还会不断完善。
函数名 | 功能 |
insertNode(int node_pid, str node_name) |
插入一个节点作为给出节点的孩子节点。
参数:
|
MoveNode(src_id,des_id) | 移动节点和他的子树,参数:src_id源节点id;des_id:目标节点id(注意暂时不能将一个节点移动到根下(0)) |
DelNode(id,confirm) | 删除节点和子树,参数:id节点id;confirm:是否直接删除true/false。 |
undel(id) | 恢复没有直接删除的节点 |
string OutPutOption(root_id,selected_id,show_root,rel_deep) |
将树输出为类表控件的选项,即option>标签 参数:
|
Display(root_id,rel_deep,menu_tag,item_tag,options) | 功能:读出并且按模板标签生成显示内容,替换标签有:{id},{name},{porder},{auto},{pid}
|
SubTree(node_id,order,rel_deep,with_root,with_del) | 取得子目录记录集
|
AlterNode(node_id,new_name,step) |
修改节点信息
|
程序还在改进中,有些接口还待调整 |
©linzsoft.com2006-05-26