求救!求一棵树的代码!急!在线等!送100分!不胜感激!
我现在在做一棵只有一级的树,所有的信息都从数据库里取出来,
从而建立一棵树,同时我要在树里建立一个edit页面的连接,点树接点击,
可以进入各自的edit界面,同时向界面里传递一个从数据库里取出的id号和树节点
名称,所有的树要放在jsp界面中的,不知道谁能提供这方面的代码!
推荐阅读
javascript的:
<html>
<head>
<title>ie-menu</title>
<script language="javascript">
<!--
//每个节点有一个数组,包含 4+n个元素
// node[0]为0/1 对应节点的展开/关闭
// node[1]为0/1 对应文件夹的关闭/展开
// node[2]为1 如果节点的子节点是文档
// node[3]是节点的名称
// node[4]...node[4+n]为n个子节点
// 初始化菜单的数据
function generatetree()
{
var aux1, aux2, aux3, aux4
folderstree = foldernode("我的网站")
aux1 = appendchild(folderstree, foldernode("娱乐天地"))
aux2 = appendchild(aux1, leafnode("literature"))
appendchild(aux2, generatedocentry(0, "文学巨著", "basefolder.htm", ""))
appendchild(aux2, generatedocentry(0, "杂家杂谈", "basefolder.htm", ""))
aux2 = appendchild(aux1, leafnode("music"))
appendchild(aux2, generatedocentry(0, "世纪流行风", "basefolder.htm", ""))
appendchild(aux2, generatedocentry(0, "民乐赏析", "basefolder.htm", ""))
appendchild(aux2, generatedocentry(0, "器乐演奏", "basefolder.htm", ""))
aux1 = appendchild(folderstree, foldernode("资料仓库"))
aux2 = appendchild(aux1, leafnode("software"))
appendchild(aux2,generatedocentry(1, "系统软件", "basefolder.htm", ""))
appendchild(aux2,generatedocentry(1, "工具软件", "basefolder.htm", ""))
appendchild(aux2,generatedocentry(1, "游戏", "basefolder.htm", ""))
aux2 = appendchild(aux1, foldernode("sourceprograme"))
aux3 = appendchild(aux2, leafnode("javascript"))
appendchild(aux3, generatedocentry(1, "第一期", "basefolder.htm",""))
appendchild(aux3, generatedocentry(1, "第二期", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "第三期", "basefolder.htm", ""))
aux3 = appendchild(aux2, leafnode("asp"))
appendchild(aux3, generatedocentry(1, "第一期", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "第二期", "basefolder.htm", ""))
aux3 = appendchild(aux2, leafnode("php"))
appendchild(aux3, generatedocentry(1, "第一期", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "第二期", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "第三期", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "第四期", "basefolder.htm", ""))
aux3 = appendchild(aux2, leafnode("cgi"))
appendchild(aux3,generatedocentry(1, "第一期", "basefolder.htm", ""))
appendchild(aux3,generatedocentry(1, "第二期", "basefolder.htm", ""))
appendchild(aux3,generatedocentry(1, "第三期", "basefolder.htm", ""))
appendchild(aux3,generatedocentry(1, "第四期", "basefolder.htm", ""))
appendchild(aux3,generatedocentry(1, "第五期", "basefolder.htm", ""))
appendchild(aux3,generatedocentry(1, "第六期", "basefolder.htm", ""))
aux3 = appendchild(aux2, leafnode("另类"))
appendchild(aux3, generatedocentry(1, "applet效果", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "flash动画", "basefolder.htm", ""))
aux2 = appendchild(aux1, foldernode("download area"))
aux3 = appendchild(aux2, leafnode("免费软件"))
appendchild(aux3, generatedocentry(1, "升级程序", "basefolder.htm", ""))
appendchild(aux3, generatedocentry(1, "补丁系列", "basefolder.htm", ""))
}
// 创建节点的辅助函数
function foldernode(name)
{
var arrayaux
arrayaux = new array
arrayaux[0] = 0
arrayaux[1] = 0
arrayaux[2] = 0
arrayaux[3] = name
return arrayaux
}
function leafnode(name)
{
var arrayaux
arrayaux = new array
arrayaux[0] = 0
arrayaux[1] = 0
arrayaux[2] = 1
arrayaux[3] = name
return arrayaux
}
function appendchild(parent, child)
{
parent[parent.length] = child
return child
}
function generatedocentry(icon, docdescription, link)
{
var retstring =""
if (icon==0)
retstring = "<a href="+link+" target=folderframe><img src=doc.gif alt=在右边框架中打开"
else
retstring = "<a href="+link+" target=_blank><img src=link.gif alt=在新窗口中打开"
retstring = retstring + " border=0></a><td nowrap><font style=font-size:9pt;font-family:宋体>" + docdescription + "</font>"
return retstring
}
//刷新树状菜单
function redrawtree()
{
var doc = top.treeframe.window.document
doc.clear()
doc.write("<body bgcolor=white>")
redrawnode(folderstree, doc, 0, 1, "")
doc.close()
}
function redrawnode(foldersnode, doc, level, lastnode, leftside)
{
var j=0
var i=0
doc.write("<table border=0 cellspacing=0 cellpadding=0>")
doc.write("<tr><td valign = middle nowrap>")
doc.write(leftside)
if (level>0)
if (lastnode) //brother子节点数组中有否兄弟节点
{
doc.write("<img src=lastnode.gif width=16 height=22>")
leftside = leftside + "<img src=blank.gif width=16 height=22>"
}
else
{
doc.write("<img src=node.gif width=16 height=22>")
leftside = leftside + "<img src=vertline.gif width=16 height=22>"
}
displayiconandlabel(foldersnode, doc)
doc.write("</table>")
if (foldersnode.length > 4 && foldersnode[0]) //有更低层的节点和文件夹展开着
{
if (!foldersnode[2])//带文件夹的文件夹
{
level=level+1
for (i=4; i<foldersnode.length;i++)
if (i==foldersnode.length-1)
redrawnode(foldersnode[i], doc, level, 1, leftside)
else
redrawnode(foldersnode[i], doc, level, 0, leftside)
}
else //带文档的文件夹
{
for (i=4; i<foldersnode.length;i++)
{
doc.write("<table border=0 cellspacing=0 cellpadding=0 valign=center>")
doc.write("<tr><td nowrap>")
doc.write(leftside)
if (i==foldersnode.length - 1)
doc.write("<img src=lastnode.gif width=16 height=22>")
else
doc.write("<img src=node.gif width=16 height=22>")
doc.write(foldersnode[i])
doc.write("</table>")
}
}
}
}


讨论区