急谁有目录树组件的源程序(40分,立即)

simon810610 2003-11-21 01:17:41
兄弟现在公司急需做一个程序要用到目录树控件,我看别人用VB做过控件,但是没有程序程序我一时为难了。哪位大哥有这方面的程序还望施予小弟一二,感激不尽!
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
simon810610 2003-11-24
  • 打赏
  • 举报
回复
多谢各位,呵呵,终于解决了,散分了!
kunyi 2003-11-22
  • 打赏
  • 举报
回复
up
shzhfeng 2003-11-21
  • 打赏
  • 举报
回复
up
13617650029 2003-11-21
  • 打赏
  • 举报
回复
这是部分代码

<SCRIPT LANGUAGE=javascript>
function showhide(objspan)
{
//显示,隐藏区域,达到菜单显示的目的
var temp;
eval("temp=oSpan"+objspan+".style.display");
if(temp=="none")
{
eval("oSpan"+objspan+".style.display='block'");
eval("oImg"+objspan+".src='../images/close.gif'");
}
else
{
eval("oSpan"+objspan+".style.display='none'");
eval("oImg"+objspan+".src='../images/open.gif'");
}

}//end function

//-----------------------------Client Code End--------------------------
//-->
</SCRIPT>
<style type="text/css">
<!--
.item{ font-size:14px}
-->
</style>
</HEAD>
<BODY leftmargin=0 rightmargin=0 class=td3>
<table>
<tr><td valign=top>
<%
'''''''''''''''''''''''''''''''Server code start'''''''''''''''''''''''''''''''

dim layer,seqer,rowcount,colcount ''全局变量定义
layer=0 '''树的层次计数器,初始化为0
seqer=0 '''顺序号计数器,初始化为0
rowcount=0 '''树组的第一维数
colcount=0 '''树组的第二维数
function listchild(id)
''参数:树的根结点ID
''可变部分:
''erect.gif,blank.gif,link.gif,line.gif,open.gif,close.gif 各图片的
''说明:在本程序中作了这样的假设,你的树在数据库存储的方法为 tree{ID,nodeName,ParentID,...}
''不要在未看清楚之前修改任何一条语句
''在代码中,在editable start 与editable end 之间的未可修改内容

dim parid,i,blnchild,lastobji
dim lastseqer
lastobji="" '本级的最后一个对象i值,初始化为空
parid=id '
i=0 '基数0
blnchild=false '该节点是否有子节点,初始化为false
lastseqer=0 '上一个节点的顺序号,初始化为0,及

while(i<rowcount)

if(treedata(i,2)=parid) then
lastobji=i '
'显示连接符
if(seqer-lastseqer>1 and lastseqer<>0) then
k=lastseqer+1
Response.write("<script language=javascript>")
while(k<seqer )
Response.write("oerectImg"&layer&k&".src='../images/erect.gif';")
k=k+1
wend
Response.Write("</script>")
end if
'显示空格符
j=0
while(j<layer)
Response.Write("<img id='oerectImg"&j&seqer&"' src='../images/blank.gif' border=0 align='absmiddle'>")
'#b01# Response.Write("<img src='../images/blank.gif' border=0 align='absmiddle'>")
''如果觉得垂直线之间的宽度小了,可以去掉#b01# ,#b02#两条语句的注释,同时也可以通过更改图片的大小以达目的
j=j+1
wend

Response.Write("<img id='olinkImg"&parid&i&"' src='../images/link.gif' border=0 align='absmiddle'>")
'#b02# Response.Write("<img src='../images/line.gif' border=0 align='absmiddle'>")
Response.Write("<img id='oImg"&parid&i&"' style='cursor:hand' src='../images/open.gif' border=0 align='absmiddle' onclick=showhide('"&parid&i&"')>")

''''''''''''''''''''''editable start'''''''''''''''''''''''''''''''''''''''
Response.write("<span class=item> </span><a href='Depart_manage.asp?id="&treedata(i,0)&"' target='Right' style=''>"&HtmlOut(treedata(i,1))&"</a>")

''上面一行用户可以自行添加修改一满足实际情况。
''''''''''''''''''''''editable end'''''''''''''''''''''''''''''''''''''''

Response.Write("<br>")

lastseqer=seqer '取值在先,递加在后,其中lastseqer是局部变量,其值不会与seqer同步
seqer=seqer+1 '顺序号加一
layer=layer+1 '进入递归,层次layer加一
Response.write("<span id='oSpan"&parid&i&"' style='display:none ' >")
if(listchild(treedata(i,0))=false) then
Response.write("<script language=javascript>oImg"&parid&i&".src='../images/leaf.gif';")
Response.write("oImg"&parid&i&".onclick='';")
'Response.write("oImg"&parid&i&".style='cursor:nw-resize';")''改变光标类型
Response.write("</script>")
end if
''''如果没有下一级,则修改前面的图标为close.gif
Response.write("</span>")
blnchild=true
end if
i=i+1

wend
if(lastobji<>"") then
Response.write("<script language=javascript>olinkImg"&parid&lastobji&".src='../images/../images/lineleaf.gif';</script>")

end if
layer=layer-1 '退出递归,层次减一
listchild=blnchild '返回是否有子节点
end function
%>
<%
//strconn="at"
strsql="select * from tbioaDepartment"
strsqlTemp="select count(ID) as CountID from tbioaDepartment"
''SQL 语句书写要求:在记录集的前面三个字段必须依次为:ID(惟一的主键)、Name(菜单条显示的内容)、ParentID(父节点ID),其它根据需要输出与显示
'set conn=server.createobject("ADODB.connection")
'conn.open strconn

set rs=server.createobject("ADODB.Recordset")
rs.open strsql,oConn,1,3
rs.MoveFirst

set rs1=server.createobject("ADODB.Recordset")
rs1.open strsqlTemp,oConn,1,3

%>
<%
rowcount=rs1("CountID")
'response.write rowcount
colcount=3 '这个值根据实际情况设定
dim treedata,i,j
redim treedata(rowcount,colcount)
rs.MoveFirst
i=0
while(not rs.EOF)
j=0
while(j<colcount)
treedata(i,j)=rs.Fields(j).Value
j=j+1
wend
rs.MoveNext
i=i+1
wend
rs.Close
set rs=nothing

'''''''初始化完毕数组

Response.write("<span id='treeroot' style='display:block' border=0>")
Response.Write("<bold><img src='../images/lineleaf12.gif' border=0 align='left'> 组织结构</bold><br>")
listchild(0)
Response.write("</span>")


''''''''''''''''''''''''''''''''Server Code END '''''''''''''''''''
%>
simon810610 2003-11-21
  • 打赏
  • 举报
回复
谢谢,两位大哥感激万分,有没有用VB写的这种控件的源程序?
xxrl 2003-11-21
  • 打赏
  • 举报
回复
http://fason.nease.net/technique.htm
13617650029 2003-11-21
  • 打赏
  • 举报
回复
给你一个
http://www.adr.gov.cn/download/tree.rar

看看是不是你要的那种 如果不是再给你找~~

28,408

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧