|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
ASP.NET和ASP的比较,技术上比较已经没什么可说的了.新一代在大部分程度来说当然是比旧一代好了.关键看你对所做软件的理解了.因人而定.会写的话也可能比ASP.NET写得更有效率和更方便重用树形目次显现程序
成绩形貌:
在我们项目中经常会呈现自联系关系的数据表,假如我们从全体看往,全部表就出现为一个树形数据布局(关于庞大的情形,它大概酿成一个图)。当我们对这个表举行显现,编纂时,假如不接纳好的体现情势,会显得很愚笨,为此,我们开辟如许的树形布局的程序。在上一版本中,我们利用的是递回算法来完成,在我们对这个算法评测时发明,关于具有不计其数笔记录的数据库就不再能胜任了,以是在新的算法版本中,我们利用了XML手艺,静态的发明数据,以办理一次从服务器下在大批数据的为难,同时也遍免了假如表数据布局出现为图时就会进进逝世轮回的毛病。
实践思绪:
1、初始显现时只显现根与二级节点,根与二级节点同在一条理
2、点击一节点,假如它的子节点地区工具不存在,则创建工具,同时下载数据更新数据,显现一切子节点。
3、每一个节点在创建后都就有不异的功效,如反省子节点是不是存在,显现埋没子节点等等
4、DHTML+XML+ASP+CSS同时利用
手艺难点:
1、利用xmlhttp接口时乱码成绩:
由于在asp输入页面中,缺省的编码计划并非中文的,那末在客户端页面的xmlhttp中注释时,就会以缺省的计划剖析,以是就会呈现乱码。为此,我们在Server真个asp页面中,到场以下代码界说编码计划:
Response.CharSet="GB2312"
Response.ContentType="text/html"
2、怎样在界面上坚持上一版本的作风(类资本办理器情势):
在上一版本中,一切的页面内容都是一挥而就的,在把持上接纳递回等头脑,一切时的界面绝对友爱,事先本版中的机制产生了变更,内容是有屡次分解的
关头成绩,img,span工具的id怎样断定
经由求证,在界面上,本版本的界面难以与第一界面不异,以是只能保存一部分,可是整体来讲,新界面一样也能满意必要
由于在这里欠好利用附件,以是只能贴源码了:
---xtree.html------
<HTML>
<HEAD>
<METANAME="GENERATOR"Content="MicrosoftVisualStudio6.0">
<SCRIPTLANGUAGE=javascriptsrc="xtree.js">
</SCRIPT>
<styletype="text/css">
<!--
a:link{font-size:14px;text-decoration:none;color:#0000FF}
a:visited{font-size:14px;color:#0000FF;text-decoration:none}
a:hover{font-size:14px;color:#FF0000;background-color:#CCCC99;text-decoration:none}
a:active{font-size:14px;color:#FFFFFF;background-color:#191970;text-decoration:none}
.item{font-size:14px}
-->
</style>
</HEAD>
<BODYleftMargin=0rightMargin=0topMargin=0border=0>
<bold>树形菜单演示程序</bold><br>
<tableborder=0>
<tr><tdnowrap>
<spanid=oSpanrootborder=0></span><SCRIPTLANGUAGE=javascript>createChildNode("root",0);</SCRIPT></td></tr>
</table>
</BODY>
</HTML>
-------xtree.asp------------
<%@Language=VBScript%>
<%
Response.CharSet="GB2312"
Response.ContentType="text/html"
Servercodestart
dimparId,nodeLayer
parid=Request.QueryString("parId")
nodeLayer=cint(Request.QueryString("nodeLayer"))
if(parid="")then
Response.Write("rootidcantisnull")
Response.End()
endif
if(nodeLayer<0)then
nodeLayer=0
endif
%>
<%
strconn="at"
strsql="select*fromtreewherepar="&parid&""
SQL语句誊写请求:在纪录集的后面三个字段必需顺次为:row_id(唯一的主键)、name(菜单条显现的内容)、par_id(父节点row_id),别的依据必要输入与显现
setconn=server.createobject("ADODB.connection")
conn.openstrconn
setrs=server.createobject("ADODB.Recordset")
rs.openstrsql,conn,3,3
i=0
dimrow_id
row_id=""
whilenotrs.EOF
row_id=rs.Fields("row_id").Value
name=rs.Fields("name").Value
j=0
whilej<nodeLayer
Response.Write("")
Response.Write("LOADING...</div><br>");
temp=newString(getChildTree(childNodeId,nodeLayer));
if(temp.length!=0)
{
eval("oSpan"+childNodeId+".innerHTML=temp");
eval("objNode"+childNodeId+".src=http://edu.cnzz.cn/NewsInfo/close.bmp");//变成减号
}
else
{//假如temp内容为空,申明未找到子树,则该节点为叶节点,变动相干属性
eval("objNode"+childNodeId+".src=http://edu.cnzz.cn/NewsInfo/leaf.bmp");//变动图标
eval("objNode"+childNodeId+".");作废click事务
eval("oSpan"+childNodeId+".innerHTML=temp");//内容为空
}
}
else
{showHide(childNodeId);
}
}
ASP是依赖组件的,能访问数据库的组件好多就有好多种,再有就是你微软的工具可是什么都要收钱的啊! |
|