ASP树型菜单的问题。
下面是我在网上看到的一篇文章,实际操作时总是有诸多不明白,特别是数据库设计,糊里糊涂的,有哪位高手能帮忙做出,发到QQ:629504949,如能完美解决,另外追加100分...
下面是我在网上看到的一篇文章,实际操作时总是有诸多不明白,特别是数据库设计,糊里糊涂的,有哪位高手能帮忙做出,发到QQ:629504949
,如能完美解决,另外追加100分。
“开始设计这张关系型数据表(以Sql Server 7.0 为例):
+-----------+-----------+-----------+-----------+----------+
| 字段名 | 字段含义 | 字段类型 | 字段大小 | 字段属性 |
+-----------+-----------+-----------+-----------+----------+
| SelfID | 权限ID | Int | 4 | PK |
| PowerName | 权限名 | Varchar | 50 | Not Null |
| PowerInfo | 权限信息 | Varchar | 500 | |
| BelongID | 隶属ID | Int | 4 | |
+-----------+-----------+-----------+-----------+----------+
好了,结构设计好你就可以轻松输入你的测试数据了。
然后,我们就针对如何在网页中模仿层次结构显示这功能的ASP程序,这也是最关键的一步了。
程序清单:powerlist.asp
<%
'数据库连接
set conn=Server.CreateObject("ADODB.Connection")
conn.open "driver={SQL Server};server=chaiwei;DATABASE=chaiwei;UID=sa;PWD="
'打开所有父层数据
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "select * from powers where belongid is null order by powerid",conn,1,3
'层次数表态变量赋初值
format_i=1
'列表主程序段
do while not rs.eof
'打印父层数据信息
response.write "<a href='powerlist.asp?SelfID=" & rs("powerid") & "&BelongID=" & rs("belongid") & "'>" & rs("powername") & "</a>"
response.write "<br>"
'子程序调用,子层数据处理
Call ListSubPower(rs("powerid"))
rs.movenext
loop
'关闭父层数据集
rs.close
set rs=nothing
'子层数据处理子程序
Sub ListSubPower(id)
'打开隶属于上层 powerid 的所有子层数据信息
set rs_sub=Server.CreateObject("ADODB.Recordset")
rs_sub.Open "select * from powers where belongid=" & id & " order by powerid",conn,1,3
'列子层数据
do while not rs_sub.eof
'层次数表态变量递进累加
format_i=format_i+1
'循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段
for i=format_i to 3 step -1
response.write " |"
response.write " "
next
'打印子层数据信息
response.write " |----"
response.write "<a href='powerlist.asp?SelfID=" & rs_sub("powerid") & "&BelongID=" & rs_sub("belongid") &"'>" & rs_sub("powername") & "</a>"
response.write "<br>"
'递归调用子程序本身,对子层数据进行逐渐处理
ListSubPower(rs_sub("powerid"))
rs_sub.movenext
loop
'层次数表态变量递退累减
format_i=format_i-1
'关闭子层数据集
rs_sub.close
set rs_sub=nothing
End Sub
%>
------就是上面的文章-----
回上数据表的字段名,和数据类型也行。找了一下午资料,看明白了一点,也糊涂了许多。郁闷中……我用的是ACCESS 2003数据库 展开
,如能完美解决,另外追加100分。
“开始设计这张关系型数据表(以Sql Server 7.0 为例):
+-----------+-----------+-----------+-----------+----------+
| 字段名 | 字段含义 | 字段类型 | 字段大小 | 字段属性 |
+-----------+-----------+-----------+-----------+----------+
| SelfID | 权限ID | Int | 4 | PK |
| PowerName | 权限名 | Varchar | 50 | Not Null |
| PowerInfo | 权限信息 | Varchar | 500 | |
| BelongID | 隶属ID | Int | 4 | |
+-----------+-----------+-----------+-----------+----------+
好了,结构设计好你就可以轻松输入你的测试数据了。
然后,我们就针对如何在网页中模仿层次结构显示这功能的ASP程序,这也是最关键的一步了。
程序清单:powerlist.asp
<%
'数据库连接
set conn=Server.CreateObject("ADODB.Connection")
conn.open "driver={SQL Server};server=chaiwei;DATABASE=chaiwei;UID=sa;PWD="
'打开所有父层数据
set rs=Server.CreateObject("ADODB.Recordset")
rs.Open "select * from powers where belongid is null order by powerid",conn,1,3
'层次数表态变量赋初值
format_i=1
'列表主程序段
do while not rs.eof
'打印父层数据信息
response.write "<a href='powerlist.asp?SelfID=" & rs("powerid") & "&BelongID=" & rs("belongid") & "'>" & rs("powername") & "</a>"
response.write "<br>"
'子程序调用,子层数据处理
Call ListSubPower(rs("powerid"))
rs.movenext
loop
'关闭父层数据集
rs.close
set rs=nothing
'子层数据处理子程序
Sub ListSubPower(id)
'打开隶属于上层 powerid 的所有子层数据信息
set rs_sub=Server.CreateObject("ADODB.Recordset")
rs_sub.Open "select * from powers where belongid=" & id & " order by powerid",conn,1,3
'列子层数据
do while not rs_sub.eof
'层次数表态变量递进累加
format_i=format_i+1
'循环缩进格式控制,因为顶层与二层不需要缩进,所以从第三层开始引用此程序段
for i=format_i to 3 step -1
response.write " |"
response.write " "
next
'打印子层数据信息
response.write " |----"
response.write "<a href='powerlist.asp?SelfID=" & rs_sub("powerid") & "&BelongID=" & rs_sub("belongid") &"'>" & rs_sub("powername") & "</a>"
response.write "<br>"
'递归调用子程序本身,对子层数据进行逐渐处理
ListSubPower(rs_sub("powerid"))
rs_sub.movenext
loop
'层次数表态变量递退累减
format_i=format_i-1
'关闭子层数据集
rs_sub.close
set rs_sub=nothing
End Sub
%>
------就是上面的文章-----
回上数据表的字段名,和数据类型也行。找了一下午资料,看明白了一点,也糊涂了许多。郁闷中……我用的是ACCESS 2003数据库 展开
4个回答
展开全部
不认同godlion的说法,只要树层不是很多,用ASP实现太容易了,而且代码少.
"javascript+asp+数据库"asp不是一种语言,而是一个平台
"javascript+asp+数据库"asp不是一种语言,而是一个平台
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
己发到你QQ邮箱,不懂的可以再问我。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一,很容易实现,第二,完全用asp做实用价值太低了,第三,建议javascript+asp+数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据库文件及网页文件已经发到
629504949@qq.com
本地调试成功,环境win2003+IIS6.0
629504949@qq.com
本地调试成功,环境win2003+IIS6.0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询