asp多级菜单

hugang709979940 2010-02-01 10:03:21
我现在需要做一个动态多级菜单管理程序,目前只是用一些笨方法做到3级。如果级别比较多的话,这种方法就不好了。请高手指点一下思路。如果有源码再好不过了。。。。
...全文
149 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
hugang709979940 2010-02-01
  • 打赏
  • 举报
回复
有现成代码吗,如果有是否可以发给我。QQ:709979940
istdtganna 2010-02-01
  • 打赏
  • 举报
回复
用AJAX,再多级都没问题,而且代码也不多。
njw1028 2010-02-01
  • 打赏
  • 举报
回复
直接BAIDU去吧,有例子。
hugang709979940 2010-02-01
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 dean8828 的回复:]
HTML code<!-- 三级联动菜单 开始--><scriptlanguage="JavaScript"><!--<%'二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from aa"
rsClass2.open sq?-
[/Quote]

这个应该是菜单联动吧,我需要的是多级菜单管理,不是联动的,只要能够动态读取数据,并且分层次的。也就是栏目管理。
dean8828 2010-02-01
  • 打赏
  • 举报
回复
asp多级联动菜单

<!--#include file="adoconn.asp"-->
<%
Dim xmlDoc, ParentCode, code
'Dim root As IXMLDOMElement
'Dim newElem As IXMLDOMElement
response.ContentType = "text/xml" '输出格式为xml

ParentCode = Request("ParentCode")
If ParentCode = "" Then
Response.Write "<Tree/>"
Response.End
End If

set xmlDoc=CreateObject("Microsoft.XMLDOM") '新建xmldom对象
xmlDoc.loadXML("<Tree TreeId=""MaterialClass_"&ParentCode&""" NodeXmlSrc=""Tree.asp?ParentCode="&ParentCode&"""/>")

If ParentCode = "00" Then
code = "__"
else
code = ParentCode & "__"
End If

Set root = xmlDoc.documentElement

set rs=server.createobject("ADODB.recordset")
strSql="select y_id, y_code, [y_title] from m_style where y_code like '"&code&"'"
rs.Open strSQL,conn,1,1
If not rs.eof Then
do while not rs.eof
Set newElem = xmlDoc.createElement("TreeNode")
root.appendChild newElem

newElem.setAttribute "NodeId", "MaterialClass_" & rs("y_code")
newElem.setAttribute "Title", rs("y_title")
if len(rs("y_code"))<6 Then newElem.setAttribute "NodeXmlSrc", "Tree.asp?ParentCode=" & rs("y_code")
newElem.setAttribute "Href", rs("y_code")
newElem.setAttribute "MaterialClassCode", rs("y_code")
rs.movenext
loop
End If
rs.close
set rs = nothing

response.write("<?xml version=""1.0"" encoding=""GB2312""?>"&xmlDoc.xml)


%>

网上找的例子
这里主要是先用asp 生成xml 文档再用 Microsoft.XMLDOM读取xml 给js进行分级,另外再提一点就可以直接在js代码中asp 代码让它生成js代码,这也是一种多级联动菜单 的处理办法
dean8828 2010-02-01
  • 打赏
  • 举报
回复
要用很多级的,最好直接用AJAX
wxb0903 2010-02-01
  • 打赏
  • 举报
回复
学习...
dean8828 2010-02-01
  • 打赏
  • 举报
回复
<!-- 三级联动菜单 开始 -->
<script language="JavaScript">
<!--
<%
'二级数据保存到数组
Dim count2,rsClass2,sqlClass2
set rsClass2=server.createobject("adodb.recordset")
sqlClass2="select * from aa"
rsClass2.open sqlClass2,conn,1,1
%>
var subval2 = new Array();
//数组结构:一级根值,二级根值,二级显示值
<%
count2 = 0
do while not rsClass2.eof
%>
subval2[<%=count2%>] = new Array('<%=rsClass2("aID")%>','<%=rsClass2("ID")%>','<%=rsClass2("Name")%>')
<%
count2 = count2 + 1
rsClass2.movenext
loop
rsClass2.close
%>

<%
'三级数据保存到数组
Dim count3,rsClass3,sqlClass3
set rsClass3=server.createobject("adodb.recordset")
sqlClass3="select * from aaa"
rsClass3.open sqlClass3,conn,1,1
%>
var subval3 = new Array();
//数组结构:二级根值,三级根值,三级显示值
<%
count3 = 0
do while not rsClass3.eof
%>
subval3[<%=count3%>] = new Array('<%=rsClass3("aaID")%>','<%=rsClass3("ID")%>','<%=rsClass3("Name")%>')
<%
count3 = count3 + 1
rsClass3.movenext
loop
rsClass3.close
%>

function changeselect1(locationid)
{
document.form1.s2.length = 0;
document.form1.s2.options[0] = new Option('==请选择类别==','');
document.form1.s3.length = 0;
document.form1.s3.options[0] = new Option('==请选择专题==','');
for (i=0; i<subval2.length; i++)
{
if (subval2[i][0] == locationid)
{document.form1.s2.options[document.form1.s2.length] = new Option(subval2[i][2],subval2[i][1]);}
}
}

function changeselect2(locationid)
{
document.form1.s3.length = 0;
document.form1.s3.options[0] = new Option('==请选择专题==','');
for (i=0; i<subval3.length; i++)
{
if (subval3[i][0] == locationid)
{document.form1.s3.options[document.form1.s3.length] = new Option(subval3[i][2],subval3[i][1]);}
}
}
//-->
</script>

<form name="form1" method="post" action="test1.asp">

三级联动:
<%
Dim count1,rsClass1,sqlClass1
set rsClass1=server.createobject("adodb.recordset")
sqlClass1="select * from a"
rsClass1.open sqlClass1,conn,1,1
%>
<select name="s1" onChange="changeselect1(this.value)">
<option>==请选择频道==</option>
<%
count1 = 0
do while not rsClass1.eof
response.write"<option value="&rsClass1("ID")&">"&rsClass1("Name")&"</option>"
count1 = count1 + 1
rsClass1.movenext
loop
rsClass1.close
%>
</select>

<select name="s2" onChange="changeselect2(this.value)">
<option>==请选择类别==</option>
</select>

<select name="s3">
<option>==请选择专题==</option>
</select>
<input type="submit" name="Submit" value="提交"></form>

<!-- 三级联动菜单 结束 -->
snihcel 2010-02-01
  • 打赏
  • 举报
回复
数据库设计思路清析
用无限级啊
id
classname
flag 上级ID

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧