公司产品库分类已这样设计,考虑到已经有很多程序引用此结构,所以可能无法改边表的设计
只能在此基础上来做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

解决方案 »

  1.   

    转一个给你用用:
    <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>
      

  2.   

    不行啊 ,楼上的兄台,我不是要JAVASCRIPT的,我是要后台cs的才操作
    读数据库的结点然后 在前台显示树状图的
      

  3.   

    从数据库得到树http://www.15seconds.com/issue/030827.htm
      

  4.   

    cs:http://www.codeproject.com/cs/database/2dtreeview.asp
      

  5.   

    http://www.webasp.net/article/18/17834.htm
      

  6.   

    hehe
    这个问题有人问过,而且我还回答了,地址如下:
    http://community.csdn.net/Expert/topic/3801/3801025.xml?temp=.5778314再接一次分,真不好意思,嘿嘿嘿