动态载入asp树源码
发布时间:2007-09-06 19:34:00
标签:asp,树
一个动态载入asp树源码。把 node.htc, style.css 保存与 css 目录下. index.asp subtree.asp 放与根目录.
另新建一ACCESS数据库 tree.mdb
表deeptree 结构为 id,content, parentid,link
页面: index.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<%Option Explicit%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>tree</title>
<link href="css/style.css" rel="stylesheet" type="text/css">
<script language="JavaScript">
<!--
var d1,d2;
function expand(id)
{
var d=new Date();
d1=d.valueOf();
var s_id = eval("s" + id);
var dir_id = eval("dir" + id);
if(s_id.href != ’’)
{
//window.open(s_id.href);
//or
//top.frames[’FrameName’].location.href = s_id.href;
}
switch(dir_id.open)
{
//改变"+","-"
case "true":
{
with(dir_id)
{
innerText = "+";
open = "false";
className = ’dirclose’;
}
if(document.getElementById("t" + id))
{
eval("t"+id).style.display = ’none’;
document.getElementById("load_" + id).style.display = ’none’;
return;
}
else
{
document.getElementById("load_" + id).style.display = ’none’;
}
break;
}
case "false":
{
with(dir_id)
{
innerText = "-";
open = "true";
className = ’diropen’;
}
document.getElementById("load_" + id).style.display = ’’;
if(document.getElementById("t" + id))
{
eval("t" + id).style.display = ’’;
eval("load_" + id).style.display = ’none’;
return;
}
else
{
document.frames[’hifm’].location.replace("subtree.asp?id=" + id);
}
break;
}
default:dir_id.innerText = "."; dir_id.className = ’dirNode’; return;
}
}
function ArrToHtml(ArrNode,nodeid)
{
//输出到页面
var node_html = ’<table id="t’ + nodeid + ’" width="100%" border="0" style="position: relative; left: 18px;" cellspacing="0" cellpadding="0">’;
var str,opened,cls
for (var i = 0; i < ArrNode.length; i++)
{
if (ArrNode[i].iChildren == 0)
{
str = ’.’;
opened = ’no’;
cls = ’dirNode’;
}
else
{
str = ’+’;
opened = ’false’;
cls = ’dirclose’;
}
node_html += ’<tr><td id="node’ + ArrNode[i].id + ’" class="td_node" valign="top"><span class="’ + cls + ’" id="dir’ + ArrNode[i].id + ’" onclick="expand(’ + ArrNode[i].id + ’)" open="’ + opened + ’">’ + str + ’</span><span class="node" id="s’ + ArrNode[i].id + ’" onclick="expand(’ + ArrNode[i].id + ’)" title="’ + ArrNode[i].Content + ’" href="’ + ArrNode[i].strLink + ’">’ + ArrNode[i].Content + ’</span></td></tr>’;
if (ArrNode[i].iChildren > 0)
{
node_html += ’<tr id="load_’ + ArrNode[i].id + ’" style="display: none"><td class="td_node"><table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18; top: 0px"><tr><td class="td_node"><span class="dirNode">.</span><span class="load">Loading...</span></td></tr></table></td></tr>’;
}
}
node_html += ’</table>’;
if (document.getElementById("load_" + nodeid))
{
document.getElementById("load_" + nodeid).style.display = "none";
document.getElementById("node" + nodeid).innerHTML += node_html;
var d=new Date();
d2=d.valueOf();
message.innerHTML = "耗时:"+(d2-d1)+"ms";
}
}
-->
</script>
</head>
<body topmargin="0" leftmargin="0" scroll="yes">
<%
Dim conn,rs
Dim s,open,cls
On Error Resume Next
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("tree/tree.mdb") & ";Persist Security Info=False"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "select *,(select count(*) from deeptree where parentid = T.id) as children from deeptree T where parentid=0 order by parentid",conn,1,3
%>
<div id="message" style="height: 20px" align="center"> </div>
<div align="center">
<center>
<table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%" bgcolor="#F2F2F2">
<tr>
<td width="260" valign="top" align="left">
<div id="treedir" style="overflow: auto; width: 30%; height: 100%;">
<table border="0" cellspacing="0" cellpadding="0" style="position: relative; left: 18px; top: 20px;" width="100%">
<%
Do While Not rs.EOF
If rs("children") = 0 Then
s = "."
open = "no"
cls = "dirNode"
Else
s = "+"
open = "false"
cls = "dirclose"
End If
%>
<tr>
<td id="node<% = rs("id")%>" class="td_node" valign="top"><span class="<% = cls %>" id="dir<% = rs("id") %>" onclick="expand(<%=rs("id")%>)" open="<% = open %>"><% = s %></span><span class="node" id="s<% = rs("id") %>" onclick="expand(<% = rs("id") %>)" title="<% = Trim(rs("content")) %>" href="<% = Trim(rs("link")) %>"><% = rs("content") %></span>
</td>
</tr>
<% If rs("children") > 0 Then%>
<tr id="load_<% = rs("id") %>" style="display: none">
<td class="td_node">
<table border="0" cellspacing="0" cellpadding="0" style="position:relative;left:18;top:0" width="100%">
<tr>
<td class="td_node"><span class="dirNode">.</span><span class="load">Loading...</span>
</td>
</tr>
</table>
</td>
</tr>
<%End If%>
<%
rs.MoveNext
Loop
%>
</table>
</div>
</td>
</table>
</center>
</div>
<%
Set rs = Nothing
Set conn = Nothing
%>
<iframe id=’hifm’ width=0 height=0 style="display: none" height="100%" width="100%"></iframe>
</body>
</html>
0
投稿
猜你喜欢
- MaxDB和MySQL是独立的数据库管理服务器。系统间的协同性是可能的,通过相应的方式,系统能够彼此交换数据。要想在MaxDB和MySQL之
- 背景DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协
- 前言针对一些特殊的需求,在项目里,需要将响应式数据变为普通原始类型数据,这种情况是有的在Vue里,能够将普通数据类型的数据变为响应式数据,同
- 一直在学习系统托盘的实现,于是自己写了一个简单的系统托盘实例,右键包括演示、最大化、最小化、退出和关于。在python2.6下测试通过。注意
- 学习内容1.软件安装及服务器设置。2.(选做,但是强烈建议) 使用图形界面软件 Navicat for SQL3.数据库基础知识数据库定义关
- 安装:pip install wave在wav 模块中 ,主要介绍一种方法:getparams(),该方法返回的结果如下:_wave_par
- 博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的API接口,返回值是以JSON格式,只需要返回是转成数组就能轻松实现各种实例了。下图
- 在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了
- Python编程中对于某些需要重复调用的程序,可以使用函数进行定义,基本形式为:def 函数名(参数1, 参数2, ……, 参数N):执行语
- 有一个表,用户需要在后台操作它,希望能对它动态进行添加删除字段。这个功能也许没有问题,但是它原有插入与更新的两个存储过程,也需要一起修改。因
- 在html 5增加了新元素header、footer,测试过发现IE不能解析html 5新增的元素。代码如下:<!DOCTYPE&nb
- 目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,
- 本文实例分析了Flask和Django框架中自定义模型类的表名、父类相关问题。分享给大家供大家参考,具体如下:一. Flask和Django
- W3C 发布 XPath 1.0 规范是在 1999 年,那时我还正在备战高考,不料十年后,我才开始学习XPath,落后的差距不是一般的大(
- import timedef block(file,size=65536): while True:&n
- sort()方法排序列表中的对象,比较使用func(如果给定)。语法以下是sort()方法的语法:list.sort([func
- 本文代码是使用python抓取京东小米8手机的配置信息首先找到小米8商品的链接:https://item.jd.com/7437788.ht
- K线数据提取依据原有数据集格式,按要求生成新表:1、每分钟的close数据的第一条、最后一条、最大值及最小值,2、每分钟vol数据的增长量(
- 作为一个新世纪有思想有文化有道德时刻准备着的 * 丝男青年,在现在这样一个社会中,心疼我大慢播抵制大百度的前提下,没事儿上上网逛逛YY看看斗鱼翻
- Join 连接 (SQL Join)SQL Join (连接) 是利用不同数据表之间字段的关连性来结合多数据表