|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。程序|毗连数据库<%*****************************
*******毗连数据库的树图天生程序********
*****************************
假定你已创建了SQLServer数据库UnitTree,并在该库中创建了表:
Units(ID单元序号整数独一,Name单元称号字符串,UpID下级单元序号整数)
注:UpID=0暗示该单元是根结点单元;
输出一些数据如:(1,AA,0)(2,AABB,1)(3,AACC,1)(4,AABB11,2)
以便举行上面的程序测试。
%>
<%创建数据库毗连
setconn=server.createobject("adodb.connection")
conn.open"provider=sqloledb;datasource=YourSrcName;userid=sa;password=;database=UnitTree"
%>
<%子历程:天生树图子结点数据
SubTreeNode(Code)
SQLUnit="selectID,Name"&_
"fromUnits"&_
"whereUpID="&Code&""&_
"orderbyID"
setrsUnit=conn.Execute(SQLUnit)
DowhilenotrsUnit.Eof
Response.Write("Node"&rsUnit("ID")&"=appendChild("&"Node"&Code&",folderNode("&rsUnit("Name")&","&rsUnit("ID")&",0))"&chr(10))
callTreeNode(rsUnit("ID"))
rsUnit.movenext
Loop
EndSub
%>
<HTML>
<HEAD>
<title>练习剖析</title>
<ScriptLANGUAGE="javascript">
/******************************天生树图数据*********************************/
functiongenerateTree()
{
//天生树图数据
//-----VBScript-----
<%
显现单元
SQLUnit0="selectID,Name"&_
"fromUnits"&_
"whereUpID=0"&_
"orderbyID"
setrsUnit0=conn.Execute(SQLUnit0)
//根结点foldersTree
Response.Write("foldersTree=folderNode("&rsUnit0("Name")&","&rsUnit0("ID")&",1)"&chr(10))
Response.Write("Node"&rsUnit0("ID")&"=foldersTree"&chr(10))
callTreeNode(rsUnit0("ID"))//子结点数据
%>
}
/****************************天生树图数停止*******************************/
</Script>
<ScriptLANGUAGE="javascript">
/************************相干函数*********************************/
//天生一个节点
functionfolderNode(name,value,flagOpen)
{
vararrayAux
arrayAux=newArray
arrayAux[0]=flagOpen//结点封闭0或翻开1
arrayAux[1]=value//
arrayAux[2]=name//称号
returnarrayAux
}
//在arrayAux[3]..[n]中增加其孩子
functionappendChild(parent,child)
{
parent[parent.length]=child
returnchild
}
//画结点
//参数foldersNode:结点
//doc:document工具
//level:结点的条理
//lastNode:是不是最开端的结点
//leftSide:图片
functionredrawNode(foldersNode,doc,level,lastNode,leftSide)
{
FileName="Content.asp"//设置超链接文件,可依据你的情形改写……………
varj=0
vari=0
doc.write("<tableborder=0cellspacing=0cellpadding=0>")
doc.write("<tr><tdvalign=middlenowrap>")
doc.write(leftSide)
/******分层+/-号**************************************/
if(level>0)//不是根节点
{
if(lastNode)//最初的节点
{
if(foldersNode.length>3)//有孩子
{
if(foldersNode[0])//且翻开
{
doc.write("<Ahref=javascript:top.openBranch(""+foldersNode[2]+"")>")
doc.write("</a>")
}
else
{//但封闭
doc.write("<Ahref=javascript:top.openBranch(""+foldersNode[2]+"")>")
doc.write("</a>")
}
}
else//没孩子
doc.write(""
}
else//非最初节点
{
if(foldersNode.length>3)//有孩子
{
if(foldersNode[0])//且翻开
{
doc.write("<Ahref=javascript:top.openBranch(""+foldersNode[2]+"")>")
doc.write("</a>")
}
else
{//但封闭
doc.write("<Ahref=javascript:top.openBranch(""+foldersNode[2]+"")>")
doc.write("</a>")
}
}
else//没孩子
doc.write(""
}
/******手形图标与超链接**********/
doc.write("<ahref="+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"target=folderFrame></a>")
/********称号与超链接********/
doc.write("<tdvalign=middlealign=leftnowrap>")
doc.write("<ahref="+FileName+"?ID="+foldersNode[1]+"&Name="+foldersNode[2]+"target=folderFrame><fontsize=2face=宋体>"+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挪用
functionclickOnFolderRec(foldersNode,folderName)
{
vari=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)
}
}
//翻开或封闭结点(当用户点击分层的+/-号时呼应)
functionopenBranch(branchName)
{
clickOnFolderRec(foldersTree,branchName)
timeOutId=setTimeout("redrawTree()",100)
}
//显现树图
functionredrawTree()
{
vardoc=top.treeFrame.window.document
//纪录以后转动条地位
posX=doc.body.scrollLeft
posY=doc.body.scrollTop
doc.open()
doc.write("<bodylink=#0000ffvlink=#0000ffalink=##ff0000bgcolor=white>")
redrawNode(foldersTree,doc,0,1,"")
doc.close()
doc.body.scrollLeft=posX
doc.body.scrollTop=posY
}
//网页载进时呼应的函数
functioninitializeTree()
{
generateTree()
redrawTree()
}
/***********************相干函数END*************************/
</Script>
</HEAD>
<FRAMESETcols="220,*"framespacing="1">
<FRAMEsrc="Pleft.htm"name="treeFrame"target="_self"scrolling="auto">
<FRAMESRC="PRight.htm"name="folderFrame"scrolling="auto">
</FRAMESET>
</HTML>
<%
以上程序在WIN2000Server+IIS5.0+SQLServer2000下测试经由过程。
=========================================================
=======夏春涛E-Mail:Bluesky_521@yeah.net======
=========================================================
%>
<!--
PLeft.htm文件的内容:
<html>
<body>
<palign=center><fontsize=2>正在天生树图,请稍候...</font>
</body>
</html>
PRight.htm文件的内容:
<html>
<body>
<palign=center><fontsize=2>接待会见!</font>
</body>
</html>
Content.asp文件依据你的必要本人编写。
程序实行的效果,与Windows的资本办理器几近一样。
closedfolder.gif是一个22*22的小图,其他的图片是16*22的小图;
这些图片能够经由过程在资本办理器中抓图取得。
-->在实现ERP等高端的ASP应用时,用户需要提供核心的经营资料,需要ASP商有很高的信用度。楼上说交互性不好,太牵强了吧。在微软提供的一套框架中,利用asp做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。 |
|