仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 464|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网站制作之毗连数据库的ASP树图天生程序

[复制链接]
精灵巫婆 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:10:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

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做网站,开发效率高,使用人数少,减少不必要的开销。交互性是互动方式,是有开发人员决定的。
沙发
发表于 2015-1-18 21:35:51 | 只看该作者
用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。
因胸联盟 该用户已被删除
板凳
发表于 2015-1-25 06:40:27 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
爱飞 该用户已被删除
地板
发表于 2015-2-2 17:50:53 来自手机 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
admin 该用户已被删除
5#
发表于 2015-2-8 03:39:03 | 只看该作者
还有如何才能在最短的时间内学完?我每天可以有效学习2小时,双休日4小时。
不帅 该用户已被删除
6#
发表于 2015-2-24 04:50:02 | 只看该作者
不能只是将它停留在纸上谈兵的程度上。
深爱那片海 该用户已被删除
7#
发表于 2015-3-7 10:54:28 | 只看该作者
学习是为了用的,是为了让你的程序产生价值,把握住这个原则会比较轻松点。除此之外,课外时间一定要多参加一些社会实践活动,来锻炼自己的能力。
活着的死人 该用户已被删除
8#
发表于 2015-3-15 03:38:24 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
若天明 该用户已被删除
9#
发表于 2015-3-21 18:56:08 | 只看该作者
封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变,业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 11:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表