《拓文asp.net网站内容管理系统》官方演示站。
 设为首页  
 收藏本站
 作者:黄振安
 QQ:53854651
首 页 开源拓文.NET编程网站编程网页设计图形图像数据库软件工程留言本
    站内搜索:  
您现在的位置: 拓文网络 → 网站编程 → ASP → ASP四级联动做法[正文]

热 门 文 章

相 关 文 章
  • ASP.NET性能优化
  • ASP脚本循环语句
  • 在.NET框架应用程序中发送电子邮件
  • .net打包自动安装数据库
  • asp.net开发wap必备:更好的匹配手机设备
  • 用ashx动态生成文件
  • windows 2003下asp.Net站点无法使用用户名+密码的方
  • ASP.NET中17种正则表达式
  • 提高ASP.Net应用程序性能的十大方法
  • 一个通过web.Mail发送邮件的类
  • ASP四级联动做法
     
    [作者:不详    转贴自:不详    点击数:    更新时间:2006-3-14 9:17:43]

    <form name="frm">
    <select name=school onchange="MulSelect(1)"></select>
    <select name=department onkeypress=sortMe(this) onchange="MulSelect(2)"></select>
    <select name=grade onchange="MulSelect(3)"></select>
    <select name=student></select>
    <p> </p>
    </form>

    <script>
    // 四级联动
    var arrSel=["school","department","grade","student"]
    arrData=[];

    // 从数据库中读出四级联动的数据, 保存到 arrData 数组中(二维数组)
    <%
    dim conn,rs
    set conn = Server.CreateObject("ADODB.Connection")
    conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.mappath("test.mdb") & ";Persist Security Info=False"
    set rs=conn.execute("select * from dbselect")
    do while not rs.eof
    %>

    arrData[arrData.length]=["<%=trim(rs("school"))%>","<%=trim(rs("department"))%>","<%=trim(rs("grade"))%>","<%=trim(rs("student"))%>"]

    <%
    rs.movenext
    loop
    rs.close:set rs=nothing
    conn.close:set conn=nothing
    %>
    </script>

    <script>
    // 下拉框选择变化时触发的函数,用于重新生成其下级下拉框
    // num : 下拉框的级数, 1 表示最顶级
    function MulSelect(num)
    {
    var i,j,arrTemp=[];
    // 取得表单当前触发的下拉框的父级下拉框的值, 存放于 arrTemp 数组中(即不需要改变的值)
    for(i=0;i<num;i++)
    {
    arrTemp[i]=eval("document.frm."+arrSel[i]).value
    }
    if(num<arrSel.length)
    {
    // 对于触发下拉框的下一级的下拉框
    with(eval("document.frm."+arrSel[num]))
    {
    // 先清空内容
    length=0
    // 对所有的记录遍历
    for(i=0;i<arrData.length;i++)
    {
    var find=false

    // 如果父级下拉框的记录不是当前选中的值,则跳过
    for(j=0;j<num;j++)
    {
    if(arrTemp[j]!=arrData[i][j])
    {
    break;
    }
    }
    if(j!=num)
    {
    continue;
    }
    // 这里已经可以保证第 i 项记录的数据属于当前选项的子数据

    // 检查循环过程中是否已经添加了该选项,如果已有了, 则 fine = true
    for(m=0;m<options.length;m++)
    {
    if(options[m].text==arrData[i][num])
    {
    find=true
    }
    }
    // 若当前没有选项或者尚未添加该选项项,则添加之
    if(length==0||!find)
    {
    options[options.length]=new Option(arrData[i][num],arrData[i][num])
    }
    }

    // 递归调用生成下一级菜单的内容
    MulSelect((num+1))
    }
    }
    }

    // 调用联动函数初始化下拉框
    MulSelect(0)
    </script>


    首页 | 1 | 尾页  共 1 页
     
    hch004 打印本页 关闭窗口

         文 章 评 论
    评论人 查看该文章的评论 发表时间
       笔 名* : 0 50分 60分 70分 80分 90分 100分
    评论内容 *: (最多1000字。当前字数:0)


    没有相关评论,欢迎您参与!

    - 关于本站 - 网站帮助 - 下载声明 - 友情连接 - 网站地图 -
    Copyright © 2005-2006 myTopWin.Com. All Rights Reserved . [桂ICP备06004496号]