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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |