</RightDepartmen><!--对此目录有权的部门-->
<RightUser> </RightUser><!--对此目录有权的用户-->
<Lock> </Lock><!--是否锁定0/1-->
</NodeItem>
...
</NaviTree>
其中:
NodeName:指节点名称,如有上级节点,要包括上级节点名称,节点名称间以符号"\"分隔。例“我的办公桌\公告通知\电子邮件”表明根节点为“我的办公桌”,父节点为“公告通知”,本节点为“电子邮件”。如果问你包含五级的节点名称是怎样时,呵呵,不要拿西红柿扔我!
NodeType:节点类型,一般均指“href”。
ImageIndex:节点名称前显示的小图标,其中0表示文件夹状图标,4表示数据表状图标。
下面是一份xml格式文档源码:
<?xml version="1.0" encoding="GB2312"?>
<NaviTree>
<NodeItem>
<NodeName>我的办公桌</NodeName><!--节点名称-->
<NodeType>href</NodeType><!--节点类型-->
<NodeData>MyDesk.aps</NodeData><!--节点数据-->
<Lock>0</Lock><!--是否锁定0/1-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\公告通知</NodeName><!--节点名称-->
<NodeType>href</NodeType><!--节点类型-->
<NodeData>公告通知.aps</NodeData><!--节点数据-->
<Lock>0</Lock><!--是否锁定0/1-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\公告通知\电子邮件</NodeName><!--节点名称-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\公告通知\电子邮件\收件箱</NodeName><!--节点名称-->
<ImageIndex>4</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\公告通知\电子邮件\发件箱</NodeName><!--节点名称-->
<ImageIndex>4</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\公告通知\电子邮件\已发邮件</NodeName><!--节点名称-->
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\日程安排</NodeName><!--节点名称-->
<ImageIndex>0</ImageIndex>
</NodeItem>
<NodeItem>
<NodeName>我的办公桌\日程安排\日历</NodeName><!--节点名称-->
</NodeItem>
</NaviTree>
2. 代码实现
通过以下语句通知智岛目录树控件打开XML文档:
OTree.OpenXMLFile("")
其中引号内XML文档的绝对路径,例如:
OTree.OpenXMLFile("C:\OTree.xml")
运行效果见下图:
已看见你频频点头的样子,但又喃喃自语:如果要根据数据库中内容生成树形目录该...?呵呵,下面我们就进入正题(敢情前面这么多文字是骗稿费的啊?谁?嘘...,小声点,千万别让小编听见):
四、 基于数据库生成树形目录
1. XML文档格式
将树形目录的节点存入数据库,为我们动态形成树形目录打下良好的基础。当然,也有些目录树是表现一个数据库中的数据结构(父节点是数据库名,子节点是数据表)。不管如何,有了前面的基础,现在我们所需做的只是将数据库的内容形成上面格式的XML文档。下面有一份ASP源码,将数据库中结构形成XML文档,其中变量datasource存储传递过来的数据库名称。
<?xml version="1.0" encoding="GB2312"?>
<NaviTree>
<%
dim datasource
datasource=request("datasource")
%>
<NodeItem>
<NodeName><%=datasource%>
<NodeType></NodeType>
<NodeData></NodeData>
<ImageIndex>0</ImageIndex>
<Creator></Creator>
<RightDepartmen>
关键词:基于数据库动态生成树形目录