三层动态下拉菜单的例子
文章类别:
asp | 发表日期:2008-10-5 20:39:36
写了一个三层动态读取文件夹的下拉菜单的例子,供大家参考!
<%
'得到文件夹路径。注意设置文件名字
urlpath=server.mappath("\book")
set fsoBrowse=CreateObject("Scripting.FileSystemObject")
'设置文件夹路径
if Request("path")="" then
lpath=urlpath&"\"
else
lpath=Request("path")&"\"
end if
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv=PRAGMA CONTENT=NO-CACHE>
<title>中国国际航空公司</title>
<link rel="stylesheet" href="news.css">
<script language="JavaScript1.2">
NS4 = (document.layers) ? 1 : 0;
IE4 = (document.all) ? 1 : 0;
ver4 = (NS4 || IE4) ? 1 : 0;
if (ver4) {
with (document) {
write("<STYLE TYPE='text/css'>");
if (NS4) {
write(".parent {position:absolute; visibility:visible}");
write(".child {position:absolute; visibility:visible}");
write(".regular {position:absolute; visibility:visible}")
}
else {
write(".child {display:none}")
}
write("</STYLE>");
}
}
function getIndex(el) {
ind = null;
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id == el) {
ind = i;
break;
}
}
return ind;
}
function arrange() {
nextY = document.layers[firstInd].pageY +document.layers[firstInd].document.height;
for (i=firstInd+1; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.visibility != "hide") {
whichEl.pageY = nextY;
nextY += whichEl.document.height;
}
}
}
function initIt(){
if (!ver4) return;
if (NS4) {
for (i=0; i<document.layers.length; i++) {
whichEl = document.layers[i];
if (whichEl.id.indexOf("Child") != -1) whichEl.visibility = "hide";
}
arrange();
}
else {
divColl = document.all.tags("DIV");
for (i=0; i<divColl.length; i++) {
whichEl = divColl(i);
if (whichEl.className == "child") whichEl.style.display = "none";
}
}
}
function expandIt(el) {
if (!ver4) return;
if (IE4) {
whichEl = eval(el + "Child");
if (whichEl.style.display == "none") {
whichEl.style.display = "block";
}
else {
whichEl.style.display = "none";
}
}
else {
whichEl = eval("document." + el + "Child");
if (whichEl.visibility == "hide") {
whichEl.visibility = "show";
}
else {
whichEl.visibility = "hide";
}
arrange();
}
}
onload = initIt;
</script>
</head>
<body bgcolor="#ffffff" topmargin="0" leftmargin="0">
<table width="248" border="0" cellspacing="0" cellpadding="0" align="left">
<tr>
<td>
<%
'处理第一层文件目录
dim theFolder,theSubFolders
if fsoBrowse.FolderExists(lpath)then
Set theFolder=fsoBrowse.GetFolder(lpath)
Set theSubFolders=theFolder.SubFolders
'循环输出第一层文件
i=1
For Each x In theSubFolders
k="KB"&i
Parent=k&"Parent"
i=i+1
%>
<div id="<%=Parent%>" class="parent"> <a href="#" onClick="expandIt('<%=k%>'); return false"><img src="i_option.gif" width="20" height="16" border="0"><%=x.Name%></a></div>
<%'处理第二层文件
onepath=lpath&x.Name&"\"
if fsoBrowse.FolderExists(onepath) then
Set ChildtheFolder=fsoBrowse.GetFolder(onepath)
Set ChildtheSubFolders=ChildtheFolder.SubFolders
Child=k&"Child"
%>
<div id="<%=Child%>" class="child">
<%'循环输出第二层文件
m=1
For Each y In ChildtheSubFolders
k="KB"&i&m
m=m+1
%>
<img src="filebox.gif" width="19" height="13"><a href="#" onClick="expandIt('<%=k%>'); return false"><%=y.Name%></a><br>
<%
'处理第三层文件
twopath=onepath&y.Name&"\"
if fsoBrowse.FolderExists(twopath) then
Set gtheFolder=fsoBrowse.GetFolder(twopath)
Set gtheSubFolders=gtheFolder.SubFolders
Child=k&"Child"
%>
<div id="<%=Child%>" class="child">
<%
'循环输出第三层文件
For Each z In gtheSubFolders
%>
<img src="filebox.gif" width="19" height="13"><%=z.Name%><br>
<%
Next
%>
</div>
<%
end if
%>
<%
Next
%>
</div>
<%
end if
%>
<%
Next
end if
%>
</td>
</tr>
</table>
</body>
</html>