繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 跟我学做树型菜单(一)

跟我学做树型菜单(一)

2006-07-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:跟我学做树型菜单 (一) 关键字:ASP|树型菜单|递归 写在前面 在网页中,为了方便组织内容,经常用到的要数菜单了,用一个树型的菜 单(效果参看http://www.he-xi.com/tree),可以非常方 便地对复杂的内容进行...
关键字:跟我学 菜单

跟我学做树型菜单 (一)

关键字:ASP|树型菜单|递归

写在前面

在网页中,为了方便组织内容,经常用到的要数菜单了,用一个树型的菜

单(效果参看http://www.he-xi.com/tree),可以非常方

便地对复杂的内容进行组织。比如商品的分类;下载文件的分类;网站导航等

等。这里要解决的就是这样一个问题。我们将会用数据库来存储树型菜单的结

构,并用ASP程序来输入。

(一)功能设计

树型菜单在功能设计上没有太多的要求。只有对记录的增、删、改。还有

就是最基本的,也是最重要的显示功能。显示功能要把记录显示出来,并且要

把显示的内容组织成客户端的动态网页。还可以加入移动的功能,实现的时候

可能有点复杂,在这里我没有具体写出来,有兴趣的朋友可以自己写。还可以

扩展管理员登录功能,只有管理员登录后才能进行管理,没有登录的话只显示

菜单。其它的功能有待更新,这里就不一一列出了。具体的功能设计如下:

1、显示菜单:最基本也是最重要的功能。显示菜单,并组织成客户端的动态网页。

2、增加记录:增加一个记录,作为所选择的记录的子菜单。

3、删除记录:删除所选择的记录。

4、修改记录:修改所选择的记录。可修改的属性有:名称,链接。

5、*移动记录:把所选择的记录移动到指定的记录下,成为它的子菜单。

6、*管理员登录:只有登录后才能管理。

7、存储的内容:每个记录中存储菜单的名字和菜单的链接。

注:加*号的在本文中没有实现。

(二)数据库设计

数据库使用ACCESS 2000数据库。数据库文件为tree.mdb 如果要求安全,可以

改名为tree.ASP 不过记得在ASP程序中也要做相应的修改。数据库结构如下:

表名:treemenu

字段名 字段类型 说明

id 自动编号/有索引无重复/递增 每个记录的编号

par_id 长整型/有索引有重复 父结点的ID号/为0表示根

chi_id 长整型/有索引有重复 子结点的个数

Txt 文本/长度50 菜单的名称/50太少的话自己改

Link 文本/长度50 链接/50太少的话自己改

新建好数据表后先输入一个记录,par_id和chi_id都为0 其它任意

(三)文件设计

在这里仅作为演示,并没有加入太多功能。所以只有一个文件。取名为index.ASP 便

于放在文件夹做为默认文档。在这里将会用到一些图像,用于表示菜单的状态,可以打开资源

浏览器,展开一些文件夹,然后抓图下来进行编辑一下。要注意,得到的图像最好大小相同。

我们文中使用的是16X16的图像。可以到这里直接下载:

http://www.he-xi.com/tree/images.zip

(四)相关函数

基本上要用到的函数都和《跟我学做留言本》一文的相同。主要是用于操作数据库的。在

这里也再次列出来:

共用函数文件,文件名:operation$db.ASP

<%

'*******************************************************************

'通用数据库ASP函数

'*******************************************************************

'数据库常数

databasename="tree.mdb" '数据库名,如果改名的话,在这里修改就行了

'*******************************************************************

'打开数据库

sub opendb(connect)

set connect=server.CreateObject("ADODB.connection")

connect.ConnectionString="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &_

server.MapPath(databasename)

connect.Open strconn

end sub

'*******************************************************************

'关闭数据库

sub closedb(connect)

connect.close

set connect=nothing

end sub

'*******************************************************************

'打开单个表读

sub opentable(connect,tbname,myrs)

set myrs=server.createobject("ADODB.recordset")

rssql="select * from " & tbname

myrs.open rssql,connect,1,1

end sub

'*******************************************************************

'关闭临时表

sub closetable(rs)

rs.close

set rs=nothing

end sub

'*******************************************************************

'查询数据库

sub searchtable(connect,sql,rs)

set rs=server.createobject("ADODB.recordset")

rs.open sql,connect,1,1

end sub

'*******************************************************************

'查询并更改数据库

sub changetable(connect,sql,rs)

set rs=server.createobject("ADODB.recordset")

rs.open sql,connect,1,3

end sub

'*******************************************************************

'显示信息 用于调试

Sub w(msg)

response.write msg

end sub

'*******************************************************************

'程序中断 用于调试

sub userstop()

response.end

end sub

%>

责任编辑:admin
相关文章