`

类似 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)

分享到:
评论

相关推荐

    vb vf vc java MSDN集合下载!!经典!!

    【VB、VF、VC、Java与MSDN:编程语言与开发者资源】 VB(Visual Basic)是一种由微软开发的事件驱动的编程语言,以其易学易用的特性深受初学者和专业开发者的喜爱。VB提供了直观的图形用户界面(GUI)设计工具,...

    Share MSDN.rar 绝对是好东西!

    必大家都听说过Share MSDN吧?没错,这就是那个即使你没有msdn帐号能下msdn资源的软件!当然包括windows7,只不过没有序列号...嘿嘿 10-25更新 - Share MSDN - Version 1.4.9.2320 MSDN资源查询/下载软件 说明: ...

    MSDN中文ASP帮助

    然而,更常见的是,JavaScript被用来增强客户端的用户体验,如表单验证、动态效果等。 6. **部分文件(Part1等)**:在压缩包中的"教学资源 part1"可能指的是教程的分段内容,这些部分可能包括了逐步指南、示例代码...

    轻松实现类 MSDN 2002 界面

    标题 "轻松实现类 MSDN 2002 界面" 暗示我们要讨论的是在Visual C++环境中创建一个类似Microsoft Developer Network (MSDN) 2002的用户界面的方法。MSDN 2002是一款早期的开发者资源库,其界面设计对后来的开发工具...

    类msdn界面

    4. **CTreeCtrl**:用于创建类似MSDN左侧的分类树形结构,展示各种编程库、类或函数的层级关系。 5. **CEditView** 或 **CRichEditCtrl**:用于显示和编辑文档内容,类似于右侧的API详情或示例代码。 6. **CMenu** ...

    MSDN.For.VB6.0

    MSDN.For.VB6.0.zip 安装版本,可用; 1、执行setup.exe。 2、注册码已固化在安装程序里,不必输入了。^*^ 3、按照提示点击鼠标就完事OK。(不要使用键盘) !!!本安装可能会与新版MSDN冲突,如果您有新版MSDN,就别...

    MSDN ASP视频教程地址

    根据提供的文件信息,我们可以深入探讨有关MSDN ASP视频教程的相关知识点。这包括了解MSDN是什么、ASP技术的基本概念以及为何该视频教程值得学习等多方面内容。 ### MSDN概述 MSDN(Microsoft Developer Network)...

    MSDN中文版下载

    MSDN(Microsoft Developer Network)是微软为开发者提供的一套完整的开发资源库,它包含了微软各种开发工具、操作系统、编程语言的详细文档和技术资料。对于C++程序员来说,MSDN尤其重要,因为它提供了全面的Visual...

    仿CSDN网站源代码

    【仿CSDN网站源代码】是一个编程项目,旨在实现CSDN(China Software Developer Network)网站的部分核心功能,提供给初学者或爱好者一个实践和学习的平台。这个项目具有良好的练习价值,可以帮助开发者加深对Web...

    ASP.NET_MSDN

    MSDN上 ASPNET相关内容打包成chm,这个更为详细。 易于阅读和搜索。

    经典的MSDN弹出菜单效果

    本文将详细探讨"经典的MSDN弹出菜单效果"这一主题,以及如何实现这种效果。 弹出菜单,又称为下拉菜单或浮动菜单,是用户界面设计中的一个重要元素。它通常出现在鼠标悬停或点击某个特定按钮时,能够提供额外的操作...

    MSDN网站源码下载!

    MSDN官方网站html源码,MSDN 技术资源库 做一个安静的工具站,系统之家,电脑系统下载站!包含纯净win7/8/10/xp/win10/win11系统资源 适合做官网首页,喜欢的可以自己动手改下!

    python帮助文档(类似vc的msdn)ActivePython26

    python帮助文档(类似vc的msdn),chm版,可查阅,很强大,好东西一起分享

    ASP.NET MVC MSDN 文档 CHM

    ASP.NET MVC 1.0 MSDN Reference CHM Version ASP.NET MVC 1.0 MSDN 参考及类库,CHM版本,从MSDN 官方网站下载并编译。源分支URL: http://msdn.microsoft.com/en-us/library/dd394709.aspx 内容列表: ASP.NET MVC...

    <<msdn开发精选>>

    MSDN是一个微软开发的!感兴趣就来下下吧!

    精简版的MSDN for VB6.0

    MSDN VB6精简版 ,去除了MSDN中VC。 VF以及其他部分,只保留了完整的VB帮助,强烈推荐! ========= 安装说明 ========= 1、执行setup.exe。 2、注册码已固化在安装程序里,不必输入了。^*^ 3、按照提示...

    vc ++ 6.0 MSDN 文档

    《VC++ 6.0 MSDN 文档》是开发者们在使用Microsoft Visual C++ 6.0进行MFC(Microsoft Foundation Classes)编程时的重要参考资料。MFC是一个C++类库,它封装了Windows API,使得程序员可以使用面向对象的方式来编写...

    VC6+MSDN精简

    **VC6+MSDN精简** 是一个针对微软的Visual C++ 6.0集成开发环境(IDE)和Microsoft Developer Network(MSDN)图书馆的精简版本。这个版本主要是为了方便那些只需要基本功能或者对庞大完整版不感兴趣,或者硬件资源...

    visual c++ 6.0 专业版 msdn下载

    《Visual C++ 6.0 专业版:MSDN资源详解及应用指南》 Visual C++ 6.0,简称VC++ 6.0,是由微软公司开发的一款经典的集成开发环境(IDE),专用于C++编程。这款产品在1998年发布,因其强大的功能和友好的用户界面,...

Global site tag (gtag.js) - Google Analytics