这个论坛的树桩菜单是怎么实现的?有例子吗? http://lucky.myrice.com/temp/XML.zip MSDN XML树型菜单 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 MSDN 和CSDN 左边导航树的效果都是在点击父节点时,再发出请求填充其子节点!好像网页只刷新部分! JavaScript + [ASP + Access] 实现源程序下载: http://www.triaton.com.cn/Private/Zip/Tree.zip<!-- Tree.asp --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><iframe width="100%" height="30" id="hiddenframe"></iframe><script>function ExpandNode(ParentNode,ParentId){var NodeX = eval(ParentNode.id + '_0');if (NodeX.style.display == 'none') { NodeX.style.display="block"; if (NodeX.loaded == 'no') { document.frames['hiddenframe'].location.replace("http://localhost/dvbbs/subtree.asp?PID=" + ParentId + "&PNode=" + ParentNode.id); NodeX.loaded = 'yes'; } }else { NodeX.style.display='none'; }}</script><CENTER><TABLE border="1" width="20%" height="60%"> <TR> <TD> <DIV style="OVERFLOW: auto;WIDTH: 100%;HEIGHT:100%"> <TABLE width =300%> <TR> <TD><% dim adoConnection set adoConnection = Server.CreateObject("ADODB.Connection") 'adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE" adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "\Tree.mdb;Persist Security Info=False" dim adoRecordset set adoRecordset = Server.CreateObject("ADODB.Recordset") adoRecordset.Open "select *,(select count(*) from tree where parentid = T.id) as children from tree T where rootid = id ",adoConnection dim i i=0 do until adoRecordset.eof %><div id='Node_<% = i %>'> <a href='#'<% if adoRecordset.Fields.item("Children").value >0 then %> onClick='ExpandNode(Node_<% = i %>,<% =adoRecordset.Fields.item("id").value%>)'>+</a> <% else %> >-</a> <% end if%><a href='#' onDblClick='ExpandNode(Node_<% = i %>,<% =adoRecordset.Fields.item("id").value%>)'><% =adoRecordset.Fields.item("re").value%></a></div> <div id='Node_<% = i %>_0' style='display: none' loaded='no'> 正在加载 ... </div><% i=i+1 adoRecordset.MoveNext loop adoRecordset.close set adoRecordset = nothing adoConnection.close set adoConnection = nothing%> </TD> </TR> </TABLE> </DIV> </TD> </TR></TABLE></CENTER></BODY></HTML> <!-- SubTree.asp --><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT=""><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><% dim parentid parentid = request.querystring("PID") parentnode = request.querystring("Parentnode") dim adoConnection set adoConnection = Server.CreateObject("ADODB.Connection")' adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE" adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "\Tree.mdb;Persist Security Info=False" dim adoRecordset set adoRecordset = Server.CreateObject("ADODB.Recordset") adoRecordset.Open "select *,(select count(*) from tree where parentid =T.id ) as Children from tree T where parentid = " & parentid ,adoConnection response.write adoRecordset.source dim i Dim SHTML dim parentnode parentnode = request.querystring("Pnode") dim j j= len(parentnode) - len(replace(parentnode,"_","")) dim nSpace for i=0 to j - 1 nSpace = nSpace + " " next i=0 do until adoRecordset.eof shtml = shtml _ & "<div id='" & parentnode & "_" & i + 1 & "'>" & nSpace _ & "<a href='#'" if adoRecordset.Fields.item("Children").value >0 then shtml = shtml & " onClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'>+" else shtml = shtml & ">-" end if shtml = shtml & "</a>\n" & "<a href='#'" if adoRecordset.Fields.item("Children").value >0 then shtml = shtml & "onDblClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'" end if shtml = shtml & ">" & adoRecordset.Fields.item("id").value & ": " & adoRecordset.Fields.item("re").value & "</a></div>" if adoRecordset.Fields.item("Children").value >0 then shtml = shtml & "<div id='" & parentnode & "_" & i + 1 & "_0' style='display: none' loaded='no'>" & nSpace & " 正在加载 ...</div>" end if i=i+1 adoRecordset.MoveNext loop adoRecordset.close set adoRecordset = nothing adoConnection.close set adoConnection = nothing'response.write shtml%><script> var x = eval('parent.' + '<% =request.querystring("Pnode") & "_0"%>' ) ; x.innerHTML="<% =shtml %>";</script></BODY></HTML>表结构:Tree(id,parentid,re) js怎么理解局部变量,为什么能活下来? 如何实时的把checkbox设成false JS,三级级联的问题,二级和三级的关联问题。 怎样把js代码放在一个.js文件中引用,里面写的js有什么特殊要求吗? 【求助】为什么变量在赋值后还是为‘undefind’ 关于一个js函数来实现调用网页内容的问题 【菜鸟求助】多处重复的代码能简化一下吗? javascript 函数怎么地址调用 (重金求解) 请问jsonJSON.parse()中双引号怎么解决 js超级难的问题 <div>可不是设置背景图片?参数是什么? 一个很简单的问题
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<iframe width="100%" height="30" id="hiddenframe"></iframe>
<script>
function ExpandNode(ParentNode,ParentId){
var NodeX = eval(ParentNode.id + '_0');
if (NodeX.style.display == 'none')
{
NodeX.style.display="block";
if (NodeX.loaded == 'no')
{
document.frames['hiddenframe'].location.replace("http://localhost/dvbbs/subtree.asp?PID=" + ParentId + "&PNode=" + ParentNode.id);
NodeX.loaded = 'yes';
}
}
else
{
NodeX.style.display='none';
}
}
</script>
<CENTER>
<TABLE border="1" width="20%" height="60%">
<TR>
<TD>
<DIV style="OVERFLOW: auto;WIDTH: 100%;HEIGHT:100%">
<TABLE width =300%>
<TR>
<TD>
<%
dim adoConnection
set adoConnection = Server.CreateObject("ADODB.Connection")
'adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE"
adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "\Tree.mdb;Persist Security Info=False"
dim adoRecordset
set adoRecordset = Server.CreateObject("ADODB.Recordset")
adoRecordset.Open "select *,(select count(*) from tree where parentid = T.id) as children from tree T where rootid = id ",adoConnection
dim i
i=0
do until adoRecordset.eof
%>
<div id='Node_<% = i %>'>
<a href='#'
<% if adoRecordset.Fields.item("Children").value >0 then %>
onClick='ExpandNode(Node_<% = i %>,<% =adoRecordset.Fields.item("id").value%>)'>+</a>
<% else %>
>-</a>
<% end if%>
<a href='#' onDblClick='ExpandNode(Node_<% = i %>,<% =adoRecordset.Fields.item("id").value%>)'><% =adoRecordset.Fields.item("re").value%></a>
</div>
<div id='Node_<% = i %>_0' style='display: none' loaded='no'>
正在加载 ...
</div>
<% i=i+1
adoRecordset.MoveNext
loop
adoRecordset.close
set adoRecordset = nothing
adoConnection.close
set adoConnection = nothing
%>
</TD>
</TR>
</TABLE>
</DIV>
</TD>
</TR>
</TABLE>
</CENTER>
</BODY>
</HTML> <!-- SubTree.asp -->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<%
dim parentid
parentid = request.querystring("PID")
parentnode = request.querystring("Parentnode")
dim adoConnection
set adoConnection = Server.CreateObject("ADODB.Connection")
' adoConnection.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=Test;Data Source=TRIATON\PSQL2KE" adoConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("/dvbbs") & "\Tree.mdb;Persist Security Info=False"
dim adoRecordset
set adoRecordset = Server.CreateObject("ADODB.Recordset")
adoRecordset.Open "select *,(select count(*) from tree where parentid =T.id ) as Children from tree T where parentid = " & parentid ,adoConnection
response.write adoRecordset.source
dim i
Dim SHTML
dim parentnode
parentnode = request.querystring("Pnode")
dim j
j= len(parentnode) - len(replace(parentnode,"_",""))
dim nSpace
for i=0 to j - 1
nSpace = nSpace + " "
next
i=0
do until adoRecordset.eof
shtml = shtml _
& "<div id='" & parentnode & "_" & i + 1 & "'>" & nSpace _
& "<a href='#'"
if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & " onClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'>+"
else
shtml = shtml & ">-"
end if
shtml = shtml & "</a>\n" & "<a href='#'"
if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & "onDblClick='ExpandNode(" & parentnode & "_" & i + 1 & "," & adoRecordset.Fields.item("id").value & ")'"
end if
shtml = shtml & ">" & adoRecordset.Fields.item("id").value & ": " & adoRecordset.Fields.item("re").value & "</a></div>"
if adoRecordset.Fields.item("Children").value >0 then
shtml = shtml & "<div id='" & parentnode & "_" & i + 1 & "_0' style='display: none' loaded='no'>" & nSpace & " 正在加载 ...</div>"
end if
i=i+1
adoRecordset.MoveNext
loop
adoRecordset.close
set adoRecordset = nothing
adoConnection.close
set adoConnection = nothing
'response.write shtml
%>
<script>
var x = eval('parent.' + '<% =request.querystring("Pnode") & "_0"%>' ) ;
x.innerHTML="<% =shtml %>";
</script>
</BODY>
</HTML>表结构:
Tree(id,parentid,re)