根据模板文件建立动态目录树结构的类:建议入精华备查,有演示<br>
演示地址:http://www.cnaspol.com/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="#">ciscos 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 & "px; top: " & top & "px; 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 = sznodename;<br>
document.treectrl.document.treectrlfrm.submit();<br>
}<br>
else {<br>
document.all["treectrlfrm"].togglenode.value = sznodename;<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>
根据模板文件建立动态目录树结构的类
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 根据模板文件建立动态目录树结构的类
相关推荐
-      ASP 简介
-      SQL注入天书 – ASP注入漏洞全接触
-      用.net 处理xmlHttp发送异步请求
-      asp.net创建文件夹的IO类的问题
-      如何实现ASP.NET网站个性化
-      关于ASP.NET调用JavaScript的实现
-      ASP利用Google实现在线翻译功能
-      Asp无组件生成缩略图
