set aa=new classlist aa.id="id"//编号的名称 aa.classname="classname"//分类名称 aa.pid="pid"//父ID名称 aa.db_name="class"//表名 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 %>