我写的一段递归生成类似Windows资源管理器一样效果的树状菜单的代码,请指正

发表于:2007-06-30来源:作者:点击数: 标签:
HTML HEAD META content=text/html; charset=gb2312 http-equiv=Content-Type SCRIPT lanuage=JScript function turnit(ss,ii,aa) { if (ss.style.display==none) {ss.style.display=; aa.style.display=; ii.src=minus.gif; } else {ss.style.display=none;
<HTML>
<HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<SCRIPT lanuage="JScript">
function turnit(ss,ii,aa)
{

if (ss.style.display=="none")
  {ss.style.display="";
   aa.style.display="";
   ii.src="minus.gif";
  }

else
  {ss.style.display="none";
   aa.style.display="none";
   ii.src="plus.gif";}
}

function onlyclose(ss,ii,aa)
{
   ss.style.display="none";
   aa.style.display="none";
   ii.src="plus.gif";
}
</SCRIPT>
</HEAD>
<BODY bgColor=#99CCFF>
<%
    dim dbConn
    dim IDIndex
    
    IDIndex = 0
    
    ‘’建立数据库连接
    Set dbConn = Server.CreateObject("Adodb.Connection")
    dbConn.Open "DRIVER={Microsoft Aclearcase/" target="_blank" >ccess Driver (*.mdb)}; DBQ=" & Server.MapPath ("test.mdb")
    
    ‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
    ‘’‘’生成文件类型树的递归函数,传入参数:NowItem为树节点的ID   ‘’‘’
    ‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’
    Sub DoItem(NowItem)
        dim rsTest
        dim YoungerBrother    ‘’下一个兄弟节点的ID
        dim OlderSon        ‘’第一个字节点的ID
        
        ‘’建立记录集
        set rsTest = Server.CreateObject("Adodb.recordset")
    
        ‘’生成sql语句,操作Doc_TypeTree表
        strSql = "select * from tab_test where ID = ‘’" & NowItem & "‘’"
    
        ‘’生成记录集
        rsTest.open strSql,dbConn,1,3
        
        if rsTest.eof then
            rsTest.close
            set recDosType = nothing
            exit sub
        end if
        
        YoungerBrother = trim(rsTest("BrotherNode") & "")
        OlderSon = trim(rsTest("SonNode") & "")
        NodeID = trim(rsTest("ID") & "")
        NodeName = trim(rsTest("NodeName") & "")
        
        ‘’显示子节点
        if OlderSon = "" or OlderSon = "00" then    ‘’当此项无子项时,输出相应的代码
            response.write "<TR>" & chr(10)
            response.write "<TD> </TD>" & chr(10)
            response.write "<TD>"
              response.write "<A href=‘’test‘’>" & NodeName & "</A>"              
                response.write "</TD>" & chr(10)
            response.write "</TR>" & chr(10)        
        else        
            ‘’*1.显示本项内容
            response.write "<TR>" & chr(10)
            response.write "<TD language=JScript onmouseup=turnit(" & _
                        "Content" & IDIndex & "," & _
                        "img" & IDIndex & "," & _
                        "Aux" & IDIndex & ");>" & chr(10)            
              response.write "<IMG height=9 id=img" & IDIndex & " src=‘’plus.gif‘’ width=9>" & chr(10)
                response.write "</TD>" & chr(10)
            response.write "<TD>" & chr(10)
              response.write "<A href=‘’Frame_4_publish.asp?DocTypeID=" & _
                          NodeID & "‘’ target=‘’frmFour‘’>" & NodeName & _
                          "</A>" & chr(10)
                response.write "</TD>" & chr(10)
            response.write "</TR>" & chr(10)
            
            ‘’*2.输出子孙树头代码
            response.write "<TR>" & chr(10)
            response.write "<TD id=Aux" & IDIndex & " style=‘’display: none‘’> </TD>" & chr(10)
            response.write "<TD id=Content" & IDIndex & " style=‘’display: none‘’>" & chr(10)
            response.write "<TABLE border=‘’0‘’>"
            IDIndex = IDIndex + 1
        
            ‘’*3.输出子孙树代码
            call    DoItem(OlderSon)
            
            ‘’*4.输出子孙树尾代码
            response.write "</TABLE>"
            response.write "</TD>" & chr(10)
            response.write "</TR>" & chr(10)
        end if
        
        if YoungerBrother <> "" and YoungerBrother <> "00" then
            call DoItem(YoungerBrother)
        end if        
                
        rsTest.close
        set rsTest = nothing
    end Sub
    
    response.write "<table border=‘’0‘’>"
    call DoItem("01")
    response.write "</table>"
    
    dbConn.close
    set dbConn = nothing
%>
</BODY>
</HTML>

原文转自:http://www.ltesting.net