ASP 无限级分类实现
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
[p]该例子演示了无限级分类的显示和添加.只用一个数据表实现记录无限级分类,关键是每条记录都记录了上一层类别的id(parentid),然后通过一个递归函数来不断将类别显示出来. [br]*大类1 [br]└二级小类1 [br]└三级小类1 [br]└四级小类1 [br]└五级小类1 [br]*大类2 [br]└二级小类2 [br]*大类3 [br]数据库说明:数据库db.mdb,classtable表的结构:classid类别id(自动增长) parentid 父级id 默认为0 (0代表最高级) classname类别名,classdepth是为了记录类别的级数 ———————————————- [br]| classid| classname| parentid | classdepth | [br]———————————————- [br]主要代码: [br]//先取出最高级(parentid=0)的分类 [br]<% [br]set conn=server.createobject("adodb.connection") [br]conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("db.mdb") [br]set rs1=server.createobject("adodb.recordset") [br]sql1="select * from classtable where parentid=0 order by classid" [br]rs1.open sql1,conn,1,1 [br]if rs1.eof or rs1.bof then [br]response.write"还没分类!" [br]else [br]while not rs1.eof [br]id1=rs1("classid") [br]name1=rs1("classname") [br]response.write "*"&name1&"
" [br]parentid1=rs1("parentid") [br]call reclass(id1) [br]rs1.movenext [br]wend [br]end if [br]rs1.close [br]set rs1=nothing[/p] [p]sub reclass(id) [br]'递归调用函数,生成一个类别代码 [br]set rs=server.createobject("adodb.recordset") [br]sql="select * from classtable where parentid="&id [br]rs.open sql,conn,1,1 [br]i=1 [br]while not rs.eof [br]id0=rs("classid") [br]classname0=rs("classname") [br]parentid0=rs("parentid") [br]classdepth0=rs("classdepth") [br]brstr="" [br]for j=1 to classdepth0 [br]brstr=" "&brstr [br]next [br]response.write(brstr&"└"&classname0&" ") [br]call reclass(id0) [br]rs.movenext [br]i=i+1 [br]wend [br]rs.close [br]set rs=nothing [br]end sub [br]if request("a")="add" then [br]call add [br]end if [br]if request("name")<>"" then [br]%> [br] 该文章在 2010/7/13 22:13:16 编辑过 |
关键字查询
相关文章
正在查询... |