• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    把无限级分类生成数组
    把无限级分类循环出来确实是一件头疼的事情。
    比如,我们要循环出一个SELECT,或一个TABLE,要写一大堆判断。
    有没好点的办法呢?
    我的做法是生成数组,可以重复调用,直接循环数组就行了。
    为了方便,我把它写成了类。
    class.asp
    返回所有分类的数组,并按顺序排列
    有4个属性:
    复制代码 代码如下:
    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 
    %> 

    实例测试:
    表CLASS
    字段
    id:自动编号
    classname:名称
    pid:父ID
    test.asp
    复制代码 代码如下:
    !--#include file="class.asp"--> 

    Set conn=Server.CreateObject("ADODB.connection") 
    Set Rs = Server.CreateObject("ADODB.Recordset") 
    StrDSN = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" 
    StrDSN = StrDSN  Server.MapPath("test.mdb") 
    conn.Open strDSN 
    function ins(num) 
    str="" 
    for ii=1 to num 
    str=str"|-" 
    next 
    ins=str 
    end function 
    set aa=new classlist 
    aa.id="id" 
    aa.classname="classname" 
    aa.pid="pid" 
    aa.db_name="class" 
    list=aa.arrylist() 
    response.write "table border=1>tr>td>ID/td>td>名称/td> td>第几类/td>/tr>" 
    for j=0 to ubound(list,2) 
    response.write "tr>td>"list(0,j)"/td>td>"list(1,j)"/td>td>"list(2,j)"/td>/tr>" 
    next 
    response.write "/table>" 
    'response.write list(1,3) 
    %> 
    select name=""> 
    % for i=0 to ubound(list,2)%> 
    option value="">% 
    response.write ins(list(2,i)) 
    response.write list(1,i)%>/option> 
    %next%> 
    /select> 
    循环结果:
    www.hubro.net/code/class/test.asp
    基本上可以满足一般的需要了!
    您可能感兴趣的文章:
    • php 无限级数据JSON格式及JS解析
    • asp.net(C#)生成无限级别菜单
    • php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
    • php 无限级 SelectTree 类
    • Asp.net 无限级分类实例代码
    • asp飞飞无限级分类v1.0 Asp+sql+存储过程+ajax提供下载
    • ajax+asp无限级分类树型结构的代码
    • PHP+JS无限级可伸缩菜单详解(简单易懂)
    • php+mysql实现无限级分类 | 树型显示分类关系
    • asp实现无限级分类的方法js版
    • php实现无限级分类实现代码(递归方法)
    • ASP 无限级分类实现
    上一篇:asp下载防盗链代码
    下一篇:用ASP+FSO生成JS文件
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    把无限级分类生成数组 把,无限,级,分类,生成,数组,