欢迎来到天天文库
浏览记录
ID:8966705
大小:66.88 KB
页数:7页
时间:2018-04-13
《ajax递归显示无限级分类》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、ajax+递归显示无限级分类[复制链接]小美当前离线UID351积分205阅读权限30主题115帖子210精华2JAVA威望4JAVA银元334JAVA贡献值2JAVA铜币677JAVA好评度2分享0相册0日志0记录0好友0在线时间11小时注册时间2009-9-30最后登录2011-2-11IP卡狗仔卡中级会员中级会员,积分205,距离下一级还需295积分UID351积分205阅读权限30主题115帖子210精华2JAVA威望4JAVA银元334JAVA贡献值2JAVA铜币677JAVA好评度2电梯直达楼主小美发表于2010-7-3015:51:29
2、只看该作者
3、倒
4、序浏览ajax+递归显示无限级分类前台z 此篇代码为前台jsp(html)显示页面,<2>,<3>两文代码分别为控制层Servlet和传递数据用的jsp页面,另外还有模型层的代码,例如数据库查询模型,实体对象模型等,就不贴上来了。实现此效果的关键设计是在数据库的表中设置名为parentId的字段,查询某部门的所有子部门记录,判断条件为记录的字段parentId值等于传来的父部门id,只要存在满足条件的记录,则子类就可以不断的分下去;另外则离不开Ajax的使用和Jsp的应用。 限于经验和水平,页面不太美观,只是勉强实现了无限级分类的树状效果。 使用prototy
5、pe框架,采用树形菜单形式显示类别,实现的效果为: 每次访问这个页面,都会只查询顶级部门的数据,和显示顶级部门。而每当点击上一级菜单(如,总公司)来显示下一层子菜单(如,xx分公司)时,便会访问一次web服务器和数据库,来获得子菜单的数据。而不是一次将所有部门的数据全部查询出来,从而提高了页面访问速度和用户体验,减轻了服务器和数据库的负担。 本代码特意保留了一个并无实际应用的方法withoutClick(),作用为--递归发出ajax请求,不经点击鼠标就将数据库中的所有的数据全部查询出来,如果这样使用就失去了ajax技术的作用。1.6、xt/javascript"src="${pageContext.request.contextPath}/js/prototype.js">2.分享0相册0日志0记录0好友0在线时间11小时注册时间2009-9-30最后登录2011-2-11·串个门·加好友·打招呼·发消息1.2.3.//页面加载完毕立即调用的方法4.window.onload=function(){5. register(null);//传递参数null6. //withoutClick(null); 这个方法-7、递归的将数据-全部取出,显示于页面上,这种效果不适用7.}8.9.//列出-顶级部门,为传入的部门菜单项注册点击事件10.11.functionregister(liObj){12. vardepartmentId=null;13. if(liObj==null){//自动调用(页面加载完毕)时,查询顶级部门(总公司)14. departmentId='noParent';15. getChildren(departmentId);//自动列出顶级部门 16. }else{ //为传入的部门菜单注册点击事件17.18. 8、 departmentId=liObj.value;19. liObj.onclick=function(){getChildren(departmentId);}//点击触发,列出子部门20. }21.}22.//点击菜单项触发,发出Ajax请求,根据部门id,得到所有子部门23.functiongetChildren(departmentId){24. //注意此处用法+''25. if($(departmentId+'').innerHTML!=""){//有内容时候,点击折叠,无内容则发送请求26. $(departmentId+'9、').update(null);27. return;28. }29.30. //ajax请求31. newAjax.Request("${pageContext.request.contextPath}/infinitudeGenus",32. {33. method:'get',34. parameters:{departmentId:departmentId},1. onSuccess:function(transport){2. $(departmentId+'').u
6、xt/javascript"src="${pageContext.request.contextPath}/js/prototype.js">2.分享0相册0日志0记录0好友0在线时间11小时注册时间2009-9-30最后登录2011-2-11·串个门·加好友·打招呼·发消息1.2.3.//页面加载完毕立即调用的方法4.window.onload=function(){5. register(null);//传递参数null6. //withoutClick(null); 这个方法-
7、递归的将数据-全部取出,显示于页面上,这种效果不适用7.}8.9.//列出-顶级部门,为传入的部门菜单项注册点击事件10.11.functionregister(liObj){12. vardepartmentId=null;13. if(liObj==null){//自动调用(页面加载完毕)时,查询顶级部门(总公司)14. departmentId='noParent';15. getChildren(departmentId);//自动列出顶级部门 16. }else{ //为传入的部门菜单注册点击事件17.18.
8、 departmentId=liObj.value;19. liObj.onclick=function(){getChildren(departmentId);}//点击触发,列出子部门20. }21.}22.//点击菜单项触发,发出Ajax请求,根据部门id,得到所有子部门23.functiongetChildren(departmentId){24. //注意此处用法+''25. if($(departmentId+'').innerHTML!=""){//有内容时候,点击折叠,无内容则发送请求26. $(departmentId+'
9、').update(null);27. return;28. }29.30. //ajax请求31. newAjax.Request("${pageContext.request.contextPath}/infinitudeGenus",32. {33. method:'get',34. parameters:{departmentId:departmentId},1. onSuccess:function(transport){2. $(departmentId+'').u
此文档下载收益归作者所有