<a href=&quot什么意思;<%request.ServerVariables(&quot什么意思;SCRIPT_NAME&quot什么意思;)%>?page=<%=mypage%>&i

谁能帮我解释一下这个代码么,关于ASP生成HTML文件的。_百度知道
谁能帮我解释一下这个代码么,关于ASP生成HTML文件的。
就下面这些代码,如果感觉这个不好,可以给我写一个新的,回答的好的话,会再加一百。ServerURL=CStr(Request.ServerVariables(&SCRIPT_NAME&))n=InStrRev(ServerURL,&/&) '从右边第一个字符起查找&_&的位置,n为返回值ServerURL=left(ServerURL, n)'显示从左边数第&n&个字符前面的字符,ServerURL=&http://&&Request.ServerVariables(&SERVER_NAME&)&&&&ServerURL&&show.asp?id=&&id&&&Set Mail1 = Server.CreateObject(&CDO.Message&)Mail1.CreateMHTMLBody ServerURL,31AA=Mail1.HTMLBodySet Mail1 = Nothingset objfso = Server.CreateObject(&Scripting.FileSystemObject&) set htmout = objfso.CreateTextFile(server.mappath(&html/&&id&&.htm&)) AA=replace(AA,&adpic/&,&../adpic/&) AA=replace(AA,&link.asp&,&../link.asp&)AA=replace(AA,&link_img.asp&,&../link_img.asp&)AA=replace(AA,&index.asp&,&../index.asp&)AA=replace(AA,&114/../index.asp&,&../114/index.asp&)AA=replace(AA,&ad.asp&,&../ad.asp&)AA=replace(AA,&TV.asp&,&../tv.asp&)AA=replace(AA,&user.asp&,&../user.asp&)AA=replace(AA,&gbook.asp&,&../gbook.asp&)AA=replace(AA,&city.asp&,&../city.asp&)AA=replace(AA,&post.asp&,&../post.asp&)AA=replace(AA,&city_more.asp&,&../city_more.asp&)AA=replace(AA,&reg.asp&,&../reg.asp&)AA=replace(AA,&login.asp&,&../login.asp&)AA=replace(AA,&search.asp&,&../search.asp&)AA=replace(AA,&114/join.asp&,&../114/join.asp&)AA=replace(AA,&fabu.asp&,&../fabu.asp&)AA=replace(AA,&type.asp&,&../type.asp&)AA=replace(AA,&show.asp&,&../show.asp&)AA=replace(AA,&114/qy../login.asp&,&../114/qylogin.asp&)AA=replace(AA,&rq_message.asp&,&../rq_message.asp&)AA=replace(AA,&top.asp&,&../top.asp&)AA=replace(AA,&money.asp&,&../money.asp&)AA=replace(AA,&pic.asp&,&../pic.asp&)AA=replace(AA,&bbs/&,&../bbs/&)AA=replace(AA,&html/&,&&)AA=replace(AA,&ip.asp&,&../ip.asp&)AA=replace(AA,&phone.asp&,&../phone.asp&)AA=replace(AA,&about.asp&,&../about.asp&)AA=replace(AA,&search_gaoji.asp&,&../search_gaoji.asp&)htmout.write replace(AA,&images/&,&../images/&)htmout.close
set htmout=nothing
set objfso=nothing
response.write&&script&alert('恭喜您的信息已经发布成功!现在跳转到您发布的信息页面!');location='html/&&id&&.htm'&/script&&
关注三楼(那个取地址到底是什么用?)关注五楼()关注六楼(六楼的兄弟,你快说到重点了。不是抓别人的网站,而是我自己的网站。这样“抓取”的优缺点能详细说下么?另外想问你个问题,这样抓的东西写到数据库以后会有HTML代码,可是我只想要那里面的文字东西,或图片什么的这个要怎么搞呢,而且不好替换,因为没有规律。要怎么替换呢?还是有特殊的方法?)这些问题也是我想问的,这个代码不是我写的,只是在网上找到,研究下。因为我也搞不懂他用这些有什么用。所以来问下,这种写法是不是牛X到我认不出来,是不是很高明?可是用这种方法,我这里测试可以使用。不过我到现在我不清楚,他这个生成的HTML文件里的内容,是怎么生出来的?我想改生成的HTML文件的排版,都不知道在哪改,服了都。
提问者采纳
有人关注我的解释吗?---------------------------------------------ServerURL=CStr(Request.ServerVariables(&SCRIPT_NAME&)) '获取当前文件名,带&/&n=InStrRev(ServerURL,&/&) '从右边第一个字符起查找&/&的位置,n为返回值 ServerURL=left(ServerURL, n)'显示从左边数第&n&个字符前面的字符, ServerURL=&http://&&Request.ServerVariables(&SERVER_NAME&)&&&&ServerURL&&show.asp?id=&&id&&& '取地址构成新地址Set Mail1 = Server.CreateObject(&CDO.Message&) '实例化CDO.Message邮件发送组件为mail1Mail1.CreateMHTMLBody ServerURL,31 '通过mail1载入页面ServerURL----------------------------------------------对以上代码我做过测试了&%ServerURL=CStr(Request.ServerVariables(&SCRIPT_NAME&)) response.write ServerURL%&输出结果/test/test.asp&%ServerURL=CStr(Request.ServerVariables(&SCRIPT_NAME&)) n=InStrRev(ServerURL,&/&)
ServerURL=left(ServerURL, n)response.write ServerURL%&输出结果/test/为什么生成静态页面要用CDO.Message,这个组件好象不是服务器自带的,测试时提示&Unknown Error &,为什么不直接使用fso把数据生成呢?------------------------------========答复楼主,HTML的内容是通过CDO.Message抓取的,要修改生成的HTML文件的排版需要该原来的站点,如果原来站点不是自己的,建议做数据分析.其实如果抓取别人网站的话,我更推荐使用Microsoft.XMLHTTP这个对象,网上有很多关于介绍的资料-------------------------------答复楼主,如我上面所说,如果选择抓取详细数据则需要做数据分析,如果是自己的站为什么不直接调取页面模版,从数据库获取数据进行填充,然后再生成静态页面呢?这样“抓取”是一种偷懒的方式,可以同时支持静态和动态两种模式,而代码不会有干扰,生成部分的代码就纯粹做生成,不用调数据库,我仍然推荐调数据库、调模版,然后整合生成
提问者评价
问题补充已经用完了,不过这位朋友确实改过回答,在此谢谢其他的朋友们关注
其他类似问题
html文件的相关知识
其他5条回答
一楼的没素质,我是不懂.懂的话就会回答
ServerURL=CStr(Request.ServerVariables(&SCRIPT_NAME&)) '取得URL地址n=InStrRev(ServerURL,&/&) '从右边第一个字符起查找&/&的位置,n为返回值 ServerURL=left(ServerURL, n)'显示从左边数第&n&个字符前面的字符, 重新定义UrlServerURL=&http://&&Request.ServerVariables(&SERVER_NAME&)&&&&ServerURL&&show.asp?id=&&id&&& '重新定义自己的URL地址,如:(这里加上刚才取得的Url)/show.asp?id=4Set Mail1 = Server.CreateObject(&CDO.Message&) '建立一个Message对象。用于取得页面中的文件Mail1.CreateMHTMLBody ServerURL,31 '执行方法,取得文件内容AA=Mail1.HTMLBody '将文件内容赋值给AASet Mail1 = Nothing '清空mail1所占资源set objfso = Server.CreateObject(&Scripting.FileSystemObject&) '建立一个文本对象set htmout = objfso.CreateTextFile(server.mappath(&html/&&id&&.htm&)) '建立一个类似于html/4.htm的文件'以下内容为将刚才取得的文件内容替换成需要的内容。(在这里是将它的链接路径转换为上一级)AA=replace(AA,&adpic/&,&../adpic/&) '替换AA=replace(AA,&link.asp&,&../link.asp&) '替换AA=replace(AA,&link_img.asp&,&../link_img.asp&) '替换AA=replace(AA,&index.asp&,&../index.asp&) '替换AA=replace(AA,&114/../index.asp&,&../114/index.asp&) '替换AA=replace(AA,&ad.asp&,&../ad.asp&) '替换AA=replace(AA,&TV.asp&,&../tv.asp&) '替换AA=replace(AA,&user.asp&,&../user.asp&) '替换AA=replace(AA,&gbook.asp&,&../gbook.asp&) '替换AA=replace(AA,&city.asp&,&../city.asp&) '替换AA=replace(AA,&post.asp&,&../post.asp&) '替换AA=replace(AA,&city_more.asp&,&../city_more.asp&) '替换AA=replace(AA,&reg.asp&,&../reg.asp&) '替换AA=replace(AA,&login.asp&,&../login.asp&) '替换AA=replace(AA,&search.asp&,&../search.asp&) '替换AA=replace(AA,&114/join.asp&,&../114/join.asp&) '替换AA=replace(AA,&fabu.asp&,&../fabu.asp&) '替换AA=replace(AA,&type.asp&,&../type.asp&) '替换AA=replace(AA,&show.asp&,&../show.asp&) '替换AA=replace(AA,&114/qy../login.asp&,&../114/qylogin.asp&) '替换AA=replace(AA,&rq_message.asp&,&../rq_message.asp&) '替换AA=replace(AA,&top.asp&,&../top.asp&) '替换AA=replace(AA,&money.asp&,&../money.asp&) '替换AA=replace(AA,&pic.asp&,&../pic.asp&) '替换AA=replace(AA,&bbs/&,&../bbs/&) '替换AA=replace(AA,&html/&,&&) '替换AA=replace(AA,&ip.asp&,&../ip.asp&) '替换AA=replace(AA,&phone.asp&,&../phone.asp&) '替换AA=replace(AA,&about.asp&,&../about.asp&) '替换AA=replace(AA,&search_gaoji.asp&,&../search_gaoji.asp&) '替换htmout.write replace(AA,&images/&,&../images/&) '替换并且将替换完成的文本存入刚才建立的文件当中。生成完成了!!!htmout.close '关闭文件set htmout=nothing '消空文件所占资源set objfso=nothing '清空对象response.write&&script&alert('恭喜您的信息已经发布成功!现在跳转到您发布的信息页面!');location='html/&&id&&.htm'&/script&& '提示信息,告诉你发布成功了!!
关注下通常动不动就骂人垃圾的,都是……
还有一个问题,为什么生成静态页面要用CDO.Message,这个组件好象不是服务器自带的,测试时提示&Unknown Error &,为什么不直接使用fso把数据生成呢?回答者: eiwinter - 魔法师 五级 12-5 16:18//////////////////////////////////////////////////同eiwinter,cdo好像基本都是用来收发邮件方面的,用默认的FSO可以很轻松实现该问题
你代码写的太恶心了,你就算在给我500分我也不帮你弄,你个垃圾
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁解除asp访问后台限制_百度知道
解除asp访问后台限制
dim rsGetAdmin,sqlGetAdmindim ComeUrl,cUrlComeUrl=lcase(trim(request.ServerVariables(&HTTP_REFERER&)))if ComeUrl&&&& then cUrl=trim(&http://& & Request.ServerVariables(&SERVER_NAME&)) if mid(ComeUrl,len(cUrl)+1,1)=&:& then
cUrl=cUrl & &:& & Request.ServerVariables(&SERVER_PORT&) end if cUrl=lcase(cUrl & request.ServerVariables(&SCRIPT_NAME&)) if lcase(left(ComeUrl,instrrev(ComeUrl,&/&)))&&lcase(left(cUrl,instrrev(cUrl,&/&))) then
response.write &&br&&p align=center&&font color='red'&对不起,为了系统安全,不允许从外部链接地址访问本系统的后台管理页面。&/font&&/p&&
response.end end ifend if
首先请问你是要问什么呢??其次我想这段的执行时这样的:1:得到访问的上一页的ComeUrl
并转成小写型字符串,2:得到的ComeUrl不是空的,执行,先返回当前页面的服务器名,和http://重新组合成url给cUrl3:mid比较冒号,取得端口号4:就是先重组了地址,在比较地址,提交地地址如果和重组后的不一样就会提示错误了~~~
其他类似问题
按默认排序
其他2条回答
sub ComeUrldim ComeUrl,cUrlComeUrl=lcase(trim(request.ServerVariables("HTTP_REFERER"))) cUrl=trim("http://" & Request.ServerVariables("SERVER_NAME")) if mid(ComeUrl,len(cUrl)+1,1)=":" then  cUrl=cUrl & ":" & Request.ServerVariables("SERVER_PORT") end if cUrl=lcase(cUrl & request.ServerVariables("SCRIPT_NAME")) if lcase(left(ComeUrl,instrrev(ComeUrl,"/")))<>lcase(left(cUrl,instrrev(cUrl,"/"))) then  response.write "<br><p align=center><font color='red'>对不起,为了系统安全,不允许从外部链接地址访问本系统的后台管理页面2</font></p>"  response.endend ifend sub
去掉外部地址判断试试
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁根据模板文件建立动态目录树结构的类 - 设计前沿
根据模板文件建立动态目录树结构的类
文章出处:网上收集 作者:未知 发布时间:
????? 关键词:根据模板文件建立动态目录树结构的类根据模板文件建立动态目录树结构的类:建议入精华备查,有演示&br&
演示地址:/myasp/mmtree/treesample.asp&br&
本程序包括三文件和相关的图片文件,包括test.asp,tree.asp,mytree.txt组成&br&
test.asp 引用类文件和模板文件&br&
&%@ Language=VBScript %&&br&
&!-- #include file=&tree.asp& --&&br&
&%&br&
'========================================&br&
'BUILDING A TREE FROM A TEMPLATE FILE&br&
'========================================&br&
&&&&&br&
&&&&Set MyTree1 = New Tree&br&
&&&&MyTree1.Top = 10&br&
&&&&MyTree1.Left = 10&br&
&&&&MyTree1.ExpandImage = &plus.gif&&br&
&&&&MyTree1.CollapseImage = &minus.gif&&br&
&&&&MyTree1.LeafImage = &webpage.gif&&br&
&br&
&&&&MyTree1.LoadTemplate Server.MapPath(&mytree.txt&)&br&
&&&&&br&
&&&&MyTree1.Draw()&br&
&&&&&br&
&&&&Set MyTree1 = Nothing&br&
&br&
%&&br&
&br&
&/BODY&&br&
&/HTML&&br&
&br&
&br&
mytree.txt 树形结构模板文件&br&
&br&
Cisco&br&
&&&&Cisco Links #1&br&
&&&&&&&&&A HREF=&#&&Adjusting IP MTU, TCP MSS, and PMTUD on Windows and Sun Systems (by Cisco)&/A&&br&
&&&&&&&&&A HREF=&#&&Cisco Command Documentation&/A&&br&
&&&&&&&&&A HREF=&#&&Cisco's Collection&/A&&br&
&&&&Cisco Links #2&br&
&&&&&&&&&A HREF=&#&&DFW Cisco Users Group&/A&&br&
&&&&&&&&&A HREF=&#&&Internet Protocol Journal (by Cisco)&/A&&br&
&&&&asp #2&br&
&&&&&&&&asp #2&br&
&&&&&&&&&&&&&A HREF=&#&&vb&/A&&br&
&&&&&&&&&&&&&A HREF=&#&&asp&/A&&br&
Desktop&br&
&&&&Cisco Links #3&br&
&&&&&&&&&A HREF=&#&&Area Code Lookup&/A&&br&
&&&&&&&&&A HREF=&#&&Arin Based Whois Search&/A&&br&
&&&&&&&&&A HREF=&#&&World Time Zone Map&/A&&br&
&&&&Cisco Links #4&br&
&&&&&&&&&A HREF=&#&&Area Code Lookup&/A&&br&
&&&&&&&&&A HREF=&#&&Arin Based Whois Search&/A&&br&
&&&&&&&&&A HREF=&#&&World Time Zone Map&/A&&br&
&&&&&&&&&A HREF=&#&&World Time Zone Map&/A&&br&
Internet&br&
&&&&&A HREF=&#&&Index of Traceroute Web Servers&/A&&br&
&&&&&A HREF=&#&&Internet Health Report (Daze Networks, Inc.&/A&&br&
&&&&&A HREF=&#&&Internet Protocol Journal (by Cisco)&/A&&br&
&&&&&A HREF=&#&&Internet Traffic Report&/A&&br&
&&&&&A HREF=&#&&InterNIC Network Solutions Homepage&/A&&br&
&&&&&A HREF=&#&&IP 101: All About IP Addressing by CMP Net&/A&&br&
Network&br&
&&&&&A HREF=&#&&Digex Network Services Group&/A&&br&
&&&&&A HREF=&#&&Network Computing Online&/A&&br&
&&&&&A HREF=&#&&Network Computing Online: Technology Center&/A&&br&
&&&&&A HREF=&#&&Network Training Web Site (by InterOperability Lab)&/A&&br&
&&&&&A HREF=&#&&Networking Primer (by Bay Networks)&/A&&br&
&&&&&A HREF=&#&&Subnetting (by Network Computing Online)&/A&&br&
Software Support&br&
&&&&&A HREF=&#&&Symantec Security Alerts&/A&&br&
Technology&br&
&&&&&A HREF=&#&&Technology Dictionary (by PCWebopaedia)&/A&&br&
&&&&&A HREF=&#&&Technology Dictionary (by whatis?com)&/A&&br&
&&&&&A HREF=&#&&Technology Topics (by N.E.T.)&/A&&br&
&&&&&A HREF=&#&&Tracert&/A&&br&
&&&&&A HREF=&#&&Understanding I.P. Addressing (by 3Com)&/A&&br&
Trading&br&
&&&&&A HREF=&#&&Keynote Web Broker Trading Index&/A&&&&&&&&&&br&
&&&&&A HREF=&#&&NASDAQ&/A&&br&
Training&br&
&&&&&A HREF=&#&&RFC Index (Ohio State University)&/A&&br&
&&&&&A HREF=&#&&Vi/Ex Editor (by CMP Net)&/A&&br&
&br&
&br&
&br&
&br&
tree.asp&&&处理树形结构的vbsclass类(关键)&br&
&br&
&%&br&
Dim gblTreeNodeCount:gblTreeNodeCount = 1&br&
Class TreeNode&br&
&&&&Public Value&br&
&&&&Public ExpandImage&br&
&&&&Public CollapseImage&br&
&&&&Public LeafImage&br&
&&&&Public Expanded&br&
&&&&Private mszName&br&
&&&&Private mcolChildren&br&
&&&&Private mbChildrenInitialized&br&
&&&&&br&
&&&&Public Property Get ChildCount()&br&
&&&&&&&&ChildCount = mcolChildren.Count&br&
&&&&End Property&br&
&&&&&br&
&&&&Private Sub Class_Initialize()&br&
&&&&&&&&mszName = &node& & CStr(gblTreeNodeCount)&br&
&&&&&&&&gblTreeNodeCount = gblTreeNodeCount + 1&br&
&&&&&&&&&br&
&&&&&&&&mbChildrenInitialized = False&br&
&&&&&&&&Expanded = False&br&
&&&&End Sub &br&
&br&
&&&&Private Sub Class_Terminate()&br&
&&&&&&&&If mbChildrenInitialized And IsObject(mcolChildren) Then&br&
&&&&&&&&&&&&mcolChildren.RemoveAll()&br&
&&&&&&&&&&&&Set mcolChildren = Nothing&br&
&&&&&&&&End If&br&
&&&&End Sub&br&
&&&&&br&
&&&&Private Sub InitChildList()&br&
&&&&&&&&Set mcolChildren = Server.CreateObject(&Scripting.Dictionary&)&br&
&&&&&&&&mbChildrenInitialized = True&br&
&&&&End Sub&br&
&&&&&br&
&&&&Private Sub LoadState()&br&
&&&&&&&&If Request(mszName) = &1& Or Request(&togglenode&) = mszName Then&br&
&&&&&&&&&&&&Expanded = True&br&
&&&&&&&&End If&br&
&&&&End Sub&br&
&&&&&br&
&&&&Public Function CreateChild(szValue)&br&
&&&&&&&&&br&
&&&&&&&&If Not mbChildrenInitialized Then InitChildList()&br&
&&&&&&&&&br&
&&&&&&&&Set CreateChild = New TreeNode&br&
&&&&&&&&CreateChild.Value = szValue&br&
&&&&&&&&CreateChild.ExpandImage = ExpandImage&br&
&&&&&&&&CreateChild.CollapseImage = CollapseImage&br&
&&&&&&&&CreateChild.LeafImage = LeafImage&br&
&&&&&br&
&&&&&&&&mcolChildren.Add mcolChildren.Count + 1, CreateChild&br&
&&&&&&&&&br&
&&&&End Function&br&
&&&&&br&
&&&&Public Sub Draw()&br&
&&&&&br&
&&&&&&&&LoadState()&br&
&br&
&&&&&&&&Response.Write &&table border=&&0&&&& & vbCrLf&br&
&&&&&&&&Response.Write &&tr&&td&& & vbCrLf&br&
&&&&&&&&&br&
&&&&&&&&If Expanded Then&br&
&&&&&&&&&&&&Response.Write &&a href=&&javascript:collapseNode('& & mszName & &')&&&&img src=&&& & CollapseImage & &&& border=&&0&&&&/a&& & vbCrLf&br&
&&&&&&&&ElseIf Not mbChildrenInitialized Then&br&
&&&&&&&&&&&&Response.Write &&img src=&&& & LeafImage & &&& border=0&& & vbCrLf&br&
&&&&&&&&Else&br&
&&&&&&&&&&&&Response.Write &&a href=&&javascript:expandNode('& & mszName & &')&&&&img src=&&& & ExpandImage & &&& border=&&0&&&&/a&& & vbCrLf&br&
&&&&&&&&End If&br&
&&&&&&&&&br&
&&&&&&&&Response.Write &&/td&& & vbCrLf&br&
&&&&&&&&Response.Write &&td&& & Value & &&/td&&/tr&& & vbCrLf&br&
&&&&&br&
&&&&&&&&If Expanded Then&br&
&&&&&&&&&&&&Response.Write &&input type=&&hidden&& name=&&& & mszName & &&& value=&&1&&&& & vbCrLf&br&
&&&&&&&&&&&&&br&
&&&&&&&&&&&&If mbChildrenInitialized Then&br&
&&&&&&&&&&&&&&&&Response.Write &&tr&&td&&&/td&& & vbCrLf&br&
&&&&&&&&&&&&&&&&Response.Write &&td&& & vbCrLf&br&
&br&
&&&&&&&&&&&&&&&&For Each ChildNode In mcolChildren.Items&br&
&&&&&&&&&&&&&&&&&&&&ChildNode.Draw()&br&
&&&&&&&&&&&&&&&&Next&br&
&br&
&&&&&&&&&&&&&&&&Response.Write &&/td&& & vbCrLf&br&
&&&&&&&&&&&&&&&&Response.Write &&/tr&& & vbCrLf&br&
&&&&&&&&&&&&End If&br&
&&&&&&&&End If&br&
&&&&&&&&&br&
&&&&&&&&Response.Write &&/table&& & vbCrLf&br&
&&&&&&&&&br&
&&&&End Sub&br&
&&&&&&&&&br&
End Class&br&
&br&
&br&
Class Tree&br&
&&&&&br&
&&&&Public Top&br&
&&&&Public Left&br&
&&&&Public ExpandImage&br&
&&&&Public CollapseImage&br&
&&&&Public LeafImage&br&
&&&&Private mszPosition&br&
&&&&Private mcolChildren&br&
&&&&&br&
&&&&Public Property Let Absolute(bData)&br&
&&&&&&&&If bData Then mszPosition = &absolute& Else mszPosition = &relative&&br&
&&&&End Property&br&
&&&&&br&
&&&&Public Property Get Absolute()&br&
&&&&&&&&Absolute = CBool(mszPosition = &absolute&)&br&
&&&&End Property&br&
&&&&&br&
&&&&Private Sub Class_Initialize()&br&
&&&&&&&&Set mcolChildren = Server.CreateObject(&Scripting.Dictionary&)&br&
&&&&&&&&mnTop&&= 0&br&
&&&&&&&&mnLeft = 0&br&
&&&&&&&&mszPosition = &absolute&&br&
&&&&End Sub &br&
&br&
&&&&Private Sub Class_Terminate()&br&
&&&&&&&&mcolChildren.RemoveAll()&br&
&&&&&&&&Set mcolChildren = Nothing&br&
&&&&End Sub&br&
&br&
&&&&Public Function CreateChild(szValue)&br&
&&&&&&&&&br&
&&&&&&&&Set CreateChild = New TreeNode&br&
&br&
&&&&&&&&CreateChild.Value = szValue&br&
&&&&&&&&CreateChild.ExpandImage = ExpandImage&br&
&&&&&&&&CreateChild.CollapseImage = CollapseImage&br&
&&&&&&&&CreateChild.LeafImage = LeafImage&br&
&&&&&br&
&&&&&&&&mcolChildren.Add mcolChildren.Count + 1, CreateChild&br&
&&&&&br&
&&&&End Function&br&
&br&
&&&&Public Sub LoadTemplate(szFileName)&br&
&&&&&&&&Dim objWorkingNode&br&
&&&&&&&&Dim colNodeStack&br&
&&&&&&&&Dim fsObj, tsObj&br&
&&&&&&&&Dim szLine&br&
&&&&&&&&Dim nCurrDepth, nNextDepth&br&
&&&&&&&&&br&
&&&&&&&&Set colNodeStack = Server.CreateObject(&Scripting.Dictionary&)&br&
&&&&&&&&Set fsObj = CreateObject(&Scripting.FileSystemObject&)&br&
&&&&&&&&Set tsObj = fsObj.OpenTextFile(szFileName, 1)&br&
&&&&&&&&&br&
&&&&&&&&nCurrDepth = 0&br&
&&&&&&&&While Not tsObj.AtEndOfLine&br&
&&&&&&&&&&&&nNextDepth = 1&br&
&&&&&&&&&&&&szLine = tsObj.ReadLine()&br&
&&&&&&&&&&&&&br&
&&&&&&&&&&&&If nCurrDepth = 0 Then&br&
&&&&&&&&&&&&&&&&Set objWorkingNode = CreateChild(Trim(szLine))&br&
&&&&&&&&&&&&&&&&nCurrDepth = 1&br&
&&&&&&&&&&&&Else&br&
&&&&&&&&&&&&&&&&While Mid(szLine,nNextDepth,1) = vbTab Or Mid(szLine,nNextDepth,1) = & &&br&
&&&&&&&&&&&&&&&&&&&&nNextDepth = nNextDepth + 1&br&
&&&&&&&&&&&&&&&&WEnd&br&
&&&&&&&&&br&
&&&&&&&&&&&&&&&&If nNextDepth & 1 Then szLine = Trim(Mid(szLine,nNextDepth))&br&
&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&If szLine && && Then&br&
&&&&&&&&&&&&&&&&&&&&If nNextDepth & nCurrDepth Then&br&
&&&&&&&&&&&&&&&&&&&&&&&&If colNodeStack.Exists(nCurrDepth) Then&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Set colNodeStack.Item(nCurrDepth) = objWorkingNode&br&
&&&&&&&&&&&&&&&&&&&&&&&&Else&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&colNodeStack.Add nCurrDepth, objWorkingNode&br&
&&&&&&&&&&&&&&&&&&&&&&&&End If&br&
&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&Set objWorkingNode = objWorkingNode.CreateChild(szLine)&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&nCurrDepth = nCurrDepth + 1&br&
&&&&&&&&&&&&&&&&&&&&ElseIf nNextDepth &= nCurrDepth Then&br&
&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&If nNextDepth & 1 Then &br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&nNextDepth = nNextDepth - 1&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&While Not colNodeStack.Exists(nNextDepth) And nNextDepth & 1&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&nNextDepth = nNextDepth - 1&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&WEnd&br&
&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Set objWorkingNode = colNodeStack.Item(nNextDepth)&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Set objWorkingNode = objWorkingNode.CreateChild(szLine)&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&nNextDepth = nNextDepth + 1&br&
&&&&&&&&&&&&&&&&&&&&&&&&Else&br&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&Set objWorkingNode = CreateChild(szLine)&br&
&&&&&&&&&&&&&&&&&&&&&&&&End If&br&
&&&&&&&&&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&&&&&&&&&&&&&nCurrDepth = nNextDepth&br&
&&&&&&&&&&&&&&&&&&&&End If&br&
&&&&&&&&&&&&&&&&End If&br&
&&&&&&&&&&&&&&&&&br&
&&&&&&&&&&&&End If&br&
&&&&&&&&WEnd&br&
&br&
&&&&&&&&tsObj.Close()&br&
&&&&&&&&Set tsObj = Nothing&&&&&&&&&br&
&&&&&&&&Set fsObj = Nothing&br&
&&&&&&&&&br&
&&&&&&&&colNodeStack.RemoveAll()&br&
&&&&&&&&Set colNodeStack = Nothing&br&
&&&&&&&&&&&&&br&
&&&&End Sub&br&
&br&
&br&
&&&&Public Sub Draw()&br&
&&&&&&&&&br&
&&&&&&&&AddClientScript()&br&
&&&&&&&&&br&
&&&&&&&&Response.Write &&div id=&&treectrl&& style=&&left: & & Left & & top: & & Top & & position: & & mszPosition & &;&&&& & vbCrLf&br&
&&&&&&&&Response.Write &&form name=&&treectrlfrm&& action=&&& & Request.ServerVariables(&SCRIPT_NAME&) & &&& method=&&get&&&& & vbCrLf&br&
&&&&&&&&Response.Write &&table border=&&0&&&& & vbCrLf&br&
&&&&&&&&Response.Write &&tr&&td&& & vbCrLf&br&
&br&
&&&&&&&&For Each ChildNode In mcolChildren.Items&br&
&&&&&&&&&&&&ChildNode.Draw()&br&
&&&&&&&&Next&br&
&br&
&&&&&&&&Response.Write &&/td&&/tr&& & vbCrLf&br&
&&&&&&&&Response.Write &&/table&& & vbCrLf&br&
&br&
&&&&&&&&Response.Write &&input type=&&hidden&& name=&&togglenode&& value=&&&&&& & vbCrLf&br&
&&&&&&&&Response.Write &&/form&& & vbCrLf&br&
&&&&&&&&Response.Write &&/div&& & vbCrLf&br&
&br&
&&&&End Sub&br&
&br&
&&&&Private Sub AddClientScript()&br&
&&&&%&&br&
&&&&&&&&&script language=&JavaScript&&&br&
&&&&&&&&&br&
&&&&&&&&function expandNode(szNodeName)&br&
&&&&&&&&{&br&
&&&&&&&&&&&&if(document.layers != null) {&br&
&&&&&&&&&&&&&&&&document.treectrl.document.treectrlfrm.togglenode.value = szNodeN&br&
&&&&&&&&&&&&&&&&document.treectrl.document.treectrlfrm.submit();&br&
&&&&&&&&&&&&}&br&
&&&&&&&&&&&&else {&br&
&&&&&&&&&&&&&&&&document.all[&treectrlfrm&].togglenode.value = szNodeN&br&
&&&&&&&&&&&&&&&&document.all[&treectrlfrm&].submit();&br&
&&&&&&&&&&&&}&br&
&&&&&&&&}&br&
&&&&&&&&&br&
&&&&&&&&function collapseNode(szNodeName)&br&
&&&&&&&&{&br&
&&&&&&&&&&&&if(document.layers != null) {&br&
&&&&&&&&&&&&&&&&document.treectrl.document.treectrlfrm.elements[szNodeName].value = -1;&br&
&&&&&&&&&&&&&&&&document.treectrl.document.treectrlfrm.submit();&br&
&&&&&&&&&&&&}&br&
&&&&&&&&&&&&else {&br&
&&&&&&&&&&&&&&&&document.treectrlfrm.elements[szNodeName].value = -1;&br&
&&&&&&&&&&&&&&&&document.treectrlfrm.submit();&br&
&&&&&&&&&&&&}&br&
&&&&&&&&}&br&
&&&&&&&&&br&
&&&&&&&&&/script&&br&
&&&&&%&&&&&br&
&&&&End Sub&br&
&br&
End Class&br&
%&&br&
&br&
??????????????

我要回帖

更多关于 quot什么意思 的文章

 

随机推荐