公司产品库分类已这样设计,考虑到已经有很多程序引用此结构,所以可能无法改边表的设计
只能在此基础上来做treeview,请教高人有没有办法将BigID 与 SmallID 添加到父子结点上?
并给出详细代码,300分!!分不够再加!!!!开另外两帖拿分!
设计思路及关系:可以将BigID是 SmallID 的父ID
排序ID 小分类名 大分类主键ID ID Name BigID
2 电子、电工 2
3 化工 3
4 礼品、工艺品、饰品 4
5 家居用品 5
6 建筑、建材 6
7 服装、鞋帽 7
8 纺织、皮革 8
9 电脑、软件 9
10 办公、文教 10
11 商务服务 11
排序ID 小分类名 小分类主键ID 大分类BigID的值
ID Name SmallID BigID
1 游戏软件 2 9
2 应用软件 3 9
3 MP3 4 9
4 办公软件 5 9
5 床 6 5
6 沙发 7 5
8 电视 8 2
9 煤气炉 9 3
只能在此基础上来做treeview,请教高人有没有办法将BigID 与 SmallID 添加到父子结点上?
并给出详细代码,300分!!分不够再加!!!!开另外两帖拿分!
设计思路及关系:可以将BigID是 SmallID 的父ID
排序ID 小分类名 大分类主键ID ID Name BigID
2 电子、电工 2
3 化工 3
4 礼品、工艺品、饰品 4
5 家居用品 5
6 建筑、建材 6
7 服装、鞋帽 7
8 纺织、皮革 8
9 电脑、软件 9
10 办公、文教 10
11 商务服务 11
排序ID 小分类名 小分类主键ID 大分类BigID的值
ID Name SmallID BigID
1 游戏软件 2 9
2 应用软件 3 9
3 MP3 4 9
4 办公软件 5 9
5 床 6 5
6 沙发 7 5
8 电视 8 2
9 煤气炉 9 3
<Script LANGUAGE="JavaScript">
/****************************** 生成树图数据 *********************************/
function generateTree()
{
//生成树图数据
//-----VBScript-----
foldersTree=folderNode('AA','1',0)
Node1=foldersTree
Node2=appendChild(Node1,folderNode('AABB','2',0))
Node4=appendChild(Node2,folderNode('AABB11','4',0))
Node5=appendChild(Node4,folderNode('asdasd','5',0))
Node6=appendChild(Node5,folderNode('ghdfghdfgh','6',0))
Node3=appendChild(Node1,folderNode('AACC','3',0))
}
/**************************** 生成树图数 结束 *******************************/
</Script><Script LANGUAGE="JavaScript">
/************************ 相关函数 *********************************/
// 生成一个节点
function folderNode(name,value,flagOpen)
{
var arrayAux
arrayAux = new Array
arrayAux[0] = flagOpen //结点关闭0或打开1
arrayAux[1] = value //
arrayAux[2] = name //名称
return arrayAux
}//在arrayAux[3]..[n]中添加其孩子
function appendChild(parent, child)
{
parent[parent.length] = child
return child
}
//画结点
//参数 foldersNode:结点
// doc :document对象
// level :结点的层次
// lastNode :是否最末尾的结点
// leftSide :图片
redrawNode(foldersTree, doc, 0, 1, "")
function redrawNode(foldersNode, doc, level, lastNode, leftSide)
{
FileName="Content.asp" //设置超链接文件,可根据你的情况改写…………… 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) //最后的节点
{
if (foldersNode.length > 3)//有孩子
{
if (foldersNode[0])//且打开
{
doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[2] + "\")'>")
doc.write("<img border=0 src=../../Images/lastnode-.gif width=16 height=22></a>")
}
else
{ //但关闭
doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[2] + "\")'>")
doc.write("<img border=0 src=../../Images/lastnode+.gif width=16 height=22></a>")
}
}
else //没孩子
doc.write("<img src='../../Images/lastnode.gif' width=16 height=22>")
leftSide = leftSide + "<img src='../../Images/blank.gif' width=16 height=22>"
}
else //非最后节点
{
if (foldersNode.length > 3)//有孩子
{
if (foldersNode[0])//且打开
{
doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[2] + "\")'>")
doc.write("<img border=0 src=../../Images/Node-.gif width=16 height=22></a>")
}
else
{ //但关闭
doc.write("<A href='javascript:top.openBranch(\"" + foldersNode[2] + "\")'>")
doc.write("<img border=0 src=../../Images/Node+.gif width=16 height=22></a>")
}
}
else //没孩子
doc.write("<img src='../../Images/node.gif' width=16 height=22>")
leftSide = leftSide + "<img src='../../Images/vertline.gif' width=16 height=22>"
}
/******手形图标与超链接**********/
doc.write("<a href='"+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"' target=folderFrame><img src=../../Images/closedfolder.gif width=24 height=22 border=noborder></a>")
/********名称与超链接********/
doc.write("<td valign=middle align=left nowrap>")
doc.write("<a href='"+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"' target=folderFrame><font size=2 face='宋体'>"+foldersNode[2]+"</font></a>")
//以上超链接提供了ID,Name的QueryString值……………………………………
}
else//根节点
{
/******手形图标与超链接**********/
doc.write("<a href='"+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"' target=folderFrame><img src=../../Images/closedfolder.gif width=24 height=22 border=noborder></a>")
/********名称与超链接********/
doc.write("<td valign=middle align=left nowrap>")
doc.write("<a href='"+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"' target=folderFrame><font size=2 face='宋体'>"+foldersNode[2]+"</font></a>")
}
doc.write("</table>")
///////////////////////////////////////////////////////
if (foldersNode.length > 3 && foldersNode[0]) //有孩子且打开则递归显示节点
{
level=level+1
for (i=3; i<foldersNode.length;i++)
if (i==foldersNode.length-1)
redrawNode(foldersNode[i], doc, level, 1, leftSide)
else
redrawNode(foldersNode[i], doc, level, 0, leftSide)
}
}//当用户点击分层的+/-号时响应,被openBranch调用
function clickOnFolderRec(foldersNode, folderName)
{
var i=0 if (foldersNode[2] == folderName)
{
if (foldersNode[0])//若为打开状态时,则将其关闭
foldersNode[0] = 0
else
foldersNode[0] = 1
}
else
{
for (i=3; i< foldersNode.length; i++)
clickOnFolderRec(foldersNode[i], folderName)
}
}//打开或关闭结点(当用户点击分层的+/-号时响应)
function openBranch(branchName)
{
clickOnFolderRec(foldersTree, branchName)
timeOutId = setTimeout("redrawTree()",100)
}//显示树图
function redrawTree()
{
var doc = top.treeFrame.window.document
//记录当前滚动条位置
posX = doc.body.scrollLeft
posY = doc.body.scrollTop
doc.open()
doc.write("<body link='#0000ff' vlink='#0000ff' alink='##ff0000' bgcolor='white'>")
redrawNode(foldersTree, doc, 0, 1, "")
doc.close()
doc.body.scrollLeft = posX
doc.body.scrollTop = posY
}//网页载入时响应的函数
function initializeTree()
{
generateTree()
redrawTree()
}
/*********************** 相关函数 END *************************/
</Script>
读数据库的结点然后 在前台显示树状图的
这个问题有人问过,而且我还回答了,地址如下:
http://community.csdn.net/Expert/topic/3801/3801025.xml?temp=.5778314再接一次分,真不好意思,嘿嘿嘿