当前位置:沸点梦工场 > 网页编程 > Asp教程 > 浏览文章

实现无限级分类的ASP代码

59HOT收集整理 2008年05月03日 【字体:

class.asp

返回所有分类的数组,并按顺序排列
有4个属性:
set aa=new classlist
aa.//编号的名称
aa.class//分类名称
aa.p//父ID名称
aa.db_//表名
list=aa.arrylist()

代码如下:

<%
class classlist
private c_id
private c_db_name
private c_pid
private c_classname
public property let id(str)
   c_id = str
end property
public property let db_name(str)
   c_db_name = str
end property
public property let pid(str)
   c_pid = str
end property
public property let classname(str)
   c_classname = str
end property

dim list()

dim i,n
Private Sub Class_Initialize()'初始化变量
i=0
n=0
End Sub


public function classarry(thisid,pid)'取得下级ID
if pid>0 then
sql="select * from "&c_db_name&" where "&c_pid&"="&thisid
else
sql="select * from "&c_db_name&" where "&c_id&"="&thisid
end if
set rs_c=conn.execute(sql)
n=n+1

do while not rs_c.eof

list(0,i)=rs_c(c_id)'装入数组中
list(1,i)=rs_c(c_classname)
list(2,i)=n
'n=n+1
i=i+1
thisid=classarry(rs_c(c_id),1)'这里递归调用,直到最后一个子类

rs_c.movenext
loop
n=n-1
rs_c.close

end function

public function arrylist()'循环出所有根类
set rs_c=conn.execute("select count("&c_id&") from "&c_db_name)
lenght=rs_c(0)
rs_c.close
redim list(2,lenght)'设置数组
set rs1=conn.execute("select "&c_id&" from "&c_db_name&" where "&c_pid&"=0")
do while not rs1.eof
call classarry(rs1(c_id),0)
'n=1
rs1.movenext
loop
rs1.close
arrylist=list
end function

end class
%>

下一页
本文共 2 页,第  [1]  [2]  页