asp生成树状的方法
下面是程序的启动页面tree.htm:
< html >
< script src="renderer.js" language="javascript" >< /script >
< head >< /head >
< body id=bodytree name="bodytree" onload="gettree();" >
< iframe id=getdata style="display:none" >< /iframe >
< /body >
< /html >
该页面装载时将执行renderer.js中的gettree函数。
html代码中的iframe部分实现了客户端和服务器端的通讯机制。
javascript函数gettree的代码如下:
function gettree() {
if (event.type == 'load') {
if (typeof(divtree0)!='object')
getdata.window.location.href = 'gettreedata.asp?level=0';
} else {
try {
objmanip = eval('divtree'+ event.srcelement.getattribute('elementid'));
if (objmanip.style.display == 'none') {
objmanip.style.display = '';
} else {
objmanip.style.display = 'none';
}
} catch (e) {
getdata.window.location.href = 'gettreedata.asp?level='+ event.srcelement.getattribute('elementid');
}
event.cancelbubble = true;
}
}
当文档装载时,onload事件被触发,gettree函数得以执行。
函数检查容器divtree0是否存在,并为iframe(id为
getdata)读取第一层节点(这些节点的父节点id为0)。
如前所述,所有的节点都必须处理鼠标单击事件,而且事件句柄都是
gettree函数。
当某个节点(如div1)接收到一个鼠标事件时,程序将执行gettree函数中的else部分。
如果发送该事件的节点已
经读取了子节点,则程序检查这些子节点是否已经显示,然后切换子节点的显示状态,从而实现了该层节点的扩展或折叠效果。
检
查子节点是否显示的if语句封装在一个try块内,因此当子节点不存在时,程序将执行catch部分,调用服务器脚本
gettreedata.asp读取子节点内容。
最后,程序设置event.cancelbubble = true,目的是禁止上一层容器处
理该事件。
服务器脚本gettreedata.asp返回的html代码类如:
< html >
< body onload="parent.populatetree('1|0|节点1|2|0|节点2|3|0|节点3|4|0|节点4|');" >
< /body >
< /html >
可以看到,这里的onload事件又调用了另外一个javascript函数populatetree。
populatetree函数代码如下:
function populatetree(strdata) {
var arrsplitdata;
var icnt;
var objtempdiv;
var objmaindiv;
if (strdata=='') return;
arrsplitdata = strdata.split("|");
objmaindiv = document.createelement('div');
objmaindiv.id = 'divtree'+ arrsplitdata[1];
objmaindiv.style.csstext = 'position:relative;left:10px;cursor:hand;';
for (icnt=0;icnt< arrsplitdata.length-1;icnt+=3) {
objtempdiv = document.createelement('< div onclick='gettree()'onselectstart='return false;'> ');
objtempdiv.id = 'div'+ arrsplitdata[icnt];
objtempdiv.innerhtml = arrsplitdata[icnt+2];
objtempdiv.setattribute('elementid',arrsplitdata[icnt]);
objtempdiv.setattribute('parentelementid',arrsplitdata[icnt+1]);
objtempdiv.style.csstext = 'position:relative;cursor:hand;color:red;width:100px;font-size:x-small; ';
objmaindiv.appendchild(objtempdiv);
}
if (arrsplitdata[1]=='0')
document.body.appendchild(objmaindiv);
else
eval('div'+ arrsplitdata[1]).appendchild(objmaindiv);
}
我们已经知道,populatetree函数由onload事件调用,它的参数是一个字符串,比如上例中的“1|0|节点1|2|0|节点
2|3|0|节点3|4|0|节点4|”,它是一个“节点标识|父节点标识|节点文本|……”的列表。
如果某个节点不含子节点,则该参数是一个空字符串,此时populatetree直接返回。
如果子节点存在,
则可以利用split函
数将子节点列表以数组形式保存。
再接下来,就可以创建该层节点的容器,比如divtree0,然后遍历数组创建各个节点,如
div1,div2……。
如果某个节点的父节点id为0,说明该节点没有父节点,程序将把容器divtree0加入文档的body;否则当该节点
的父节点id不为0,则创建与其父节点对应的容器“divtree< < 父节点id > >”。
在创建节点的同时指定了鼠标单击事件的句柄
gettree函数。
注:可以修改gettreedata.asp,使其返回的子节点列表(即populatetree的参数)形式为“节点id|节点文本|……”,也
就是省略父节点id,因为任何一组子节点列表其父节点总是相同的。
同时,还必须修改populatetree函数,使其接受两个参数,第
一个参数是子节点列表,第二个是父节点id。
当节点数量较多时,采用这种方法有利于减少数据传输量,提高效率。
四、其他说明
综上所述,整个程序的工作过程可以描述为:
浏览器读入文档,执行gettree函数。
gettree调用gettreedata.asp,读取第一层节点数据,然后回调populatetree函数。
populatetree函数生成divtree0以及节点div1,div2,……。
用户单击任意一个节点。
gettree函数检查“divtree< < 节点id > >” 是否已经存在,如存在则切换子节点显示状态,否则读取子节点列表。
gettreedata.asp返回子节点列表,回调populatetree函数。
populatetree生成相应的容器“divtree< < 父节点id > >”,并生成节点“div< < 节点id1 > >”,“div< < 节点id2 >
>”……。
重复步骤4。
运行示例程序步骤如下(默认目录d:inetpubwwwroot):
创建一个目录,把所有文件拷贝到该目录。
在web服务器上发布该目录。
修改tree.dsn中的数据库路径。
修改gettreedata.asp中tree.dsn文件路径。
用浏览器打开tree.htm。
示例程序中的iframe是隐藏的,如果要显示它,则请删除iframe的属性“style="display:none"”,此时还可以查看节点
的html源代码。
在ASP.NET中构建树形目录
在中构建树形目录
彭凤梅
【期刊名称】《科技广场》
【年(卷),期】2005(000)005
【摘要】在上网浏览时,有时会看到一些网站在左边采用类似资源管理器的树形结构,在树形结构中单击,则在右边显示内容或者跳转到其它的页面,层次清晰,方便快捷.以前,在Web页面中如果想使用树形控件的话,往往会有些麻烦,有时甚至要自己写代码来达到用树形列表显示数据的目的.然而,在中,我们可以很方便地使用由微软提供的Internet Explorer Web Controls控件来实现树形列表.本文主要介绍在中利用服务器控件Treeview构建目录树的静态和动态方法,并且描述了采用先序遍历的方法动态构建树形目录.
【总页数】4页(P66-69)
【作者】彭凤梅
【作者单位】东华理工学院物理系,抚州,344000
【正文语种】中文
【中图分类】TP311.52
【相关文献】
1.在中动态生成目录树 [J], 马红春;邱小湖
2.基于环境的树形图的设计与实现 [J], 杨帆
3.在网页中实现菜单和树形结构目录 [J], 李新;杨章远
4.用C语言实现对树形目录结构下不可视目录名的自动改名 [J], 秦相林
5.浅析树形控件在中的使用 [J], 刘雄军;宁云智
因版权原因,仅展示原文概要,查看原文内容请购买。
用ASP实现树形目录视图
%>
<html>
<head><title>文件夹</title>
<base target=“main”></head>
<body bgcolor=“#008080” text=“#FFFFFF”>
<TABLE align=left border=0 cellPadding=0 cellSpacing=0 width=“100%”>
sPic=“<img border=0 src=““PIC/
pAdd.gif”” width=16 height=16>”
spib=“<a href=““pTreeView.asp?VFdPath=” & “/gpdir/” & UnMapPath(sfd.Path)
spib=spib & “&Mflag=”
FileLink = FileLink & “<td>” & f.Size\1024 & “KB</td>”
FileLink = FileLink & “<td>” & f.Type & “</td>”
FileLink = FileLink & “<td>” & Mid
end if
else
FoldOpen Request(“VFdPath”),obfd,0
end if
end if
%>
</table></body></html>
pListView.asp文件
该文件主要负责生成文件列表视图和响应用户在 该视图下的操作。限于篇幅,在此只给出其主要函数FileLink( f ),它用来生成文件 f 所对应的链接。
在ASP.NET中开发树状结构
在中开发树状结构
摘要:
在网页中用树状结构显示数据既清晰又简单,用户非常需要。
本文从实际应用的角度,介绍了在ASP中使用TreeView控件来创建树状结构的几种具体方法,可以方便地建立静、动态树状结构,较好地解决了树状结构在生成无限层次不定数量节点时非常困难而且容易出错的问题。
关键字:
Treeview控件、命名空间、静态树、动态树
一、引言
在网页开发工具ASP的应用中,用户经常希望用树状控件来显示分类或层次数据,这样既简单又直观,但是ASP本身没有提供此控件。
当然程序员可以用ImageButton和Label等组成的用户控件和XML、XSL语言自己进行编写,它们可以显示有限层次少量节点的树状,但要生成无限层次不定数量的节点时就难以实现并且非常容易出错。
作者通过对Microsoft下TreeView控件大量的实际应用,可以非常方便地实现任何类型的树状结构,较好地解决了上述问题。
二、安装TreeView控件、导入命名空间
在你的Web程序使用TreeView控件之前,首先必须下载InterExplorerWebBrowercontrols到你的开发机器上,然后导入命名空间。
可访问以下网址下载:
asp/ControlGallery/default.aspx?Category=38。
vsflexgrid 树型 实例
VSFlexGrid是一种强大的控件,它可以用来创建树形结构数据。
以下是一个简单的VSFlexGrid 树型实例:首先,在VB6中创建一个新的窗体,并添加VSFlexGrid控件。
双击控件打开代码编辑器,在Form_Load事件中添加如下代码:Private Sub Form_Load()' 设置网格属性VsFlexGrid1.Rows = 1 ' 初始化行数为1VsFlexGrid1.Cols = 3 ' 初始化列数为3VsFlexGrid1.FixedCols = 0 ' 固定列数为0VsFlexGrid1.BorderStyle = flexBorderNone ' 去掉边框线VsFlexGrid1.TreeColumn = 0 ' 第1列为树形结构' 设置第1列为树形结构VsFlexGrid1.Cols(0).CellType = flexCTTreeButtonVsFlexGrid1.Cols(0).DataType = flexDTBooleanVsFlexGrid1.Cols(0).Width = 400 ' 设置宽度为400' 添加数据VsFlexGrid1.AddItem "Node 1", 0, 1VsFlexGrid1.AddItem "Subnode 1.1", 1, 2VsFlexGrid1.AddItem "Subnode 1.2", 1, 2VsFlexGrid1.AddItem "Node 2", 0, 1VsFlexGrid1.AddItem "Subnode 2.1", 4, 2VsFlexGrid1.AddItem "Subnode 2.2", 4, 2End Sub运行程序,你会看到一个带有树形结构的VSFlexGrid表格。
ASP.NET中用TreeView控件实现树目录的方法研究
在 20 0 2年 。 im o ?发 布 了 四种 A PN TWe M c sh S .E b控 件 . 用 于为使用 M c sfItme E p rr的 We ir otne t xl e o o b访问者提供更 好 的 体验 。 这些 We b控件称为 Itme E poe b控件 , ne t x l r r We 也简称为 I b控 件 .包 括 以下 四种 控 件: ut aeWe EWe M lP g b控 件 、 . i S i b控 件 、ola b控 件 及 TeV e b控 件 。 这 些 tDWe r Tobr We re i We w We b控 件 通 过 提供 We b访 问者 熟 悉 的 用 户 界 面 .增 强 了 A P S.
【 关键字】 S .E bI b控件、r Ve :A P TWe、 We N E Te i e w控件、 目 树 录
1 引言 .
引用添加到 Mi oo . b I b o t ld c sfWe. . C nr s u程序 集中 。然后 , r t U We o. 由于在 内含代码 的类中 ,我使用的是 C 样,则要 添加 uiEMi 8 . n
We 件 , 些 We 件 通 过 提 供 We b控 这 b控 b访 问 者 熟 悉 的 用 户界 面 , 强 了 A PN TWe 页 面。TeV e b控 件 就 是 其 中 增 S.E b re iw We 之 一 。本 文 就是 详 迷 如 何 使 用 TcV e 控 件 采 生 成树 目录 , 且 通过 实例 详 细分 析 了两种 生成 方 法 。 re i w 并
nodedpa删dn0dete哇100001000000100002100001水系沉积物测量100003100002水系沉积物测量化探数据点1咖040000加地质观测点1005100004地质观测点1000100004地质观铡点地质采样记录1000070000001000081咖07爆堆炮孔数据100009100007炮孔化学样品分析结果表1010100007爆堆炮孔数据10111007爆堆炮孔概况图2双闭环不完全微分pid自动调速系统的仿真模型仿真数据如下
ASP.NET+TreeView实现树状结构
( 山西大学 计算 机与信息技术学院 , 山西 太原 00 0 ; 3 06 运城学院 公共计算机教学部 , 山西 运城 0 4 0 ) 4 00 摘 要 : 制作 课程 目录 、 在 新闻分类 、 台管理等网页时 , 后 如果使 用树状 结构来显 示数据 , 仅结 构清晰 , 不 而
二 、 装 TeVe 安 r i e w控 件
注册之后就可 以开始使用 TeVe r i e w控件 了。 三、 结合 S LSre 00创建动态树 Q evr 0 2
由于 TeVe re i w控 件 并 没有 内置 在. E N T框 架 中, 所 以在你的 We 程序使用 TeVe b r i e w控件之 前 , 首先必 须下载 It n t x l e We Bo e cn o ne e E p r b rw r ot l r or r s到你 的服 务器上 , 并进行 安装 。你 可 以访 问 以下 网址对 该控 件 进行下载 :ห้องสมุดไป่ตู้
h t / s . e/I t p:/a p n t EW e C nr l/d wn o d a p b o t s o la . s x o
下载后 , 再根据它的帮助文档进行一些必要的设置。 一 在成功下 载并 进行 设置 之后 , 还需 要在 每个使 用 它的程序页面开头添加如下语句对 陔控件进行注册 。
Na s a e= ”M irs f.W e mep e c o ot b.UI .W e Co tos A s m— b n rl ” s e by = ”M ir s f. e .UI W e Co tos Veso = 1 0. l c o ot W b . b nrl . rin . 2 2 6, C lu e . 2 u tr n u rl P 1 iKe To el ; e ta , u) c y k 【 l
Asp.net下动态树型界面的实现
平顶山学院学报
J u n l f n dn s a iest o ra g ig h nUnv riy O Pi
VO . 1 No. 12 5 Oc . 0 6 t2 0
As n t下 动 态 树 型 界 面 的 实 现 p. e
2 3 用 Tr Vi 实现 树 型 结 构 的 方 法 . e e e w
公共语言规范
Daaa d XM L t n
空间为 Mi ootWe . . b o t s T eVi 框 架 c sf r . b UIWeC nml 的 re e w.
基础类库 公 语言运行 共
Wid ws no I CO S rie M+ evc s
1使 用 C#中的 Tr e dtr 成l : )  ̄Vi E i 生 只能 展现 静 w o J
图 1 .E N T框架结构 2 采用 Tre e eVi w实现动态树型结构 目录的思路 21 . Tr Vi 组件 对象介绍 e e e w 态的树 .
2 编写程序 自动 生成树 : ) 能够 动态 的依 据实 际情况 生 成符合显示需求 的树 . 在应 用事例 中有具体代码实现 .
若不能显示正常 的线条 为树 型结构 , 应将 添加 的控 件
控 件 的应 用 .
中图分类号 : 3 1 5 TP 1 .2
如何 在 A P. E 下实 现动态 树 型结 构 的生成 , 一 S NT 是
直以来的讨论热点 . 结合笔者的开发经验 , 以避免其他 的人
员遇到如上的问题走弯路 , 现将笔者在. E N T环境下使用
S .E A P N T服务器控件 Tr Vi e e e w设计树 型结构 的点滴 经验
基于ASP.NET的动态查询式树型目录的实现
Col p e la s E pn x ad
折叠 当前树节点 。
展 开 当前 树 节 点 。
2 9期
张志强 , : 等 基于 A P N T的动 态查 询式树型 目录 的实现 S.E
法, 并在 此基础 上结合 某金融保 险报表 分析系统 , 出了一种可依据选择 的时 间点灵 活查询变更 节点 内容 的动态 目录树 。该 提
目录树可方便直观地显 示系统不 同时点的数据报表资源 , 对资源进行灵活导航和展现。
关键 词
A PN T S. E
动态 目录
查询
文献标志码
灵 活
目录在 功能及 意义 上 都 有 了进 一 步 的拓 展 和 延 伸 。
功能
本 文结合 某 金融保 险报 表 分 析 系 统 , 介绍 一 种 动 态 查 询式树 型 目录及 其 实现 方 法 , 树 型 目录能 够 依 该 据 需求 , 活 展 现 不 同 时期 的 报 表 资 源 , 现 信 息 灵 实 导 航 , 便 用 户 掌 握 报 表 总 体 状 态 , 于 管 理 和 方 利
获取 或设置 用于存 储有关 节点 的任 何其 他数据( 如用 于处理 回发 事件 的数 据 ) 的 非显示值 。
前, 许多 Wi os n w 应用程序开发工具如 :o e u d d Pw r i — B l
e, B, e h, 提 供 了一个 功 能 强 大 的树 型 控 件 iV D l i都 " p TeVe 。然 而 WE re iw B应 用 程 序 开 发 工 具 还 不 够
ASP NET+TreeView树型菜单操作实例(代码调试通过)
id="addButton" runat="server" Text="添 加"></asp:Button> <asp:Button
id="editButton" runat="server" Text="修 改"></asp:Button> <asp:Button
(TreeView1.SelectedNodeIndex); int id=Int32.Parse(treenode.Target); string classname=TextBox1.Text; if(treenode.Target!=null) { OleDbConnection conn=new OleDbConnection();
runat="server"></iewc:TreeView></TD> <TD vAlign="top"> <TABLE id="Table2" cellSpacing="1"
cellPadding="1" width="100%" border="0"> <TR> <TD>节点名 <asp:TextBox
ListItem list=new ListItem(); if (ds.Tables[0].Rows[i]["depth"].ToString()=="0") { list.Text=ds.Tables[0].Rows[i]
ASP.NET+TreeView实现树状结构
+TreeView实现树状结构
李霞
【期刊名称】《运城学院学报》
【年(卷),期】2006(24)2
【摘要】在制作课程目录、新闻分类、后台管理等网页时,如果使用树状结构来显示数据,不仅结构清晰,而且方便用户访问.从实际应用的角度,介绍了在中如何结合TreeView控件访问SQL Server2000来创建树状结构,并且较好地解决了树状结构在生成无限层次不定数量节点时非常困难而且容易出错的问题.
【总页数】2页(P49-50)
【作者】李霞
【作者单位】山西大学,计算机与信息技术学院,山西,太原,030006;运城学院,公共计算机教学部,山西,运城,044000
【正文语种】中文
【中图分类】TP32
【相关文献】
1.关系数据库的树状结构及其在labview中的实现方法 [J], 丁进成
2.故障知识库中树状结构的表示与实现 [J], 史永胜;宋云雪
3.基于知识点树状结构的超声诊断参考系统设计与实现 [J], 傅建群;何嘉辉;庞熙楹;姜惠悦;苏洪安
4.基于树状结构的南京大学文科“读、写、议”系统:设计与实现 [J], 成颖;孙建军;
郑建明
5.基于树状结构的高速公路路网扩展及收费清分实现 [J], 杜海宁;张毅;宋靖雁因版权原因,仅展示原文概要,查看原文内容请购买。
