`

类似 MSDN CSDN 左边导航树效果的实现! [JavaScript + ASP]

 
阅读更多

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("remark").value%></a>
</div>
<div id='Node_<% = i %>_0' style='display: none' loaded='no'>
&nbsp;&nbsp;正在加载 ...
</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 + "&nbsp;&nbsp;"
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("remark").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 & "&nbsp;&nbsp;正在加载 ...</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,remark)

分享到:
评论

相关推荐

    javascript 播放器 控制

    详细参数可查询MSDN http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmplay/mmp_sdk/settingsobject.asp &lt;!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”&gt; &lt;...

    ASP_NET实现在服务器端控制网页

    在ASP.NET中,可以通过为控件添加样式属性或JavaScript函数调用来模拟客户端事件的效果。 ```csharp HtmlInputButton button = new HtmlInputButton(); button.Attributes["onclick"] = "alert('Button clicked'...

    ASP.NET-[博客空间]蚂蚁单用户BLOGv1.0.0).zip

    2. ASP.NET教程网站:如MSDN、Pluralsight、TutorialsPoint等,提供丰富的学习材料和实战项目。 3. 开源社区:GitHub上有许多ASP.NET的开源项目,可以借鉴代码和设计理念。 4. 论坛和问答网站:Stack Overflow、CSDN...

    Visual Studio 2015

    10. **Web和Web应用开发**:包括ASP.NET 5(现称为ASP.NET Core)支持,提供了轻量级、高性能的Web框架,同时支持跨平台开发。 Visual Studio 2015的这些特性使其成为专业开发者不可或缺的工具,无论是个人项目还是...

    asp资源

    ### ASP资源概览:开发者的宝库 在IT行业,特别是软件开发领域,资源的积累与分享对于提升技能、拓宽视野具有不可估量的价值。本文将深入解析一系列围绕ASP(Active Server Pages)及其后续版本ASP.NET的核心资源,...

    推荐学习编程书籍

    在学习过程中,遇到问题可以借助CSDN论坛、MSDN、百度和Google等资源寻求解答,这些都是宝贵的在线学习平台,能有效解决遇到的难题。 总之,编程学习是一个持续不断的过程,需要耐心和实践。以上书籍的选择和学习...

    .net学习网站总结

    ASP.NET Rotor是一个包含了ASP.NET框架源代码的项目,对于那些想要深入理解ASP.NET内部机制的开发者而言,这里的源代码是一个重要的学习资料。 ### 26. ASP.NET System.Web.Mail ...

    编程人员应常去的网站

    2. **CSDN**(China Software Developer Network):中国最大的开发者社区,提供了丰富的编程资源、技术文章、论坛讨论和招聘信息。 3. **Vc 知识库**:主要关注Microsoft的Visual C++开发,提供代码示例、技术文档...

Global site tag (gtag.js) - Google Analytics