理论:http://blog.csdn.net/babyxue/article/details/73835444

插依赖Bootstrap 和jQuery

<link href="~/bootstrap-treeview.css" rel="stylesheet" />
<link href="./css/bootstrap.css" rel="stylesheet">
<script src="./js/jquery.js"></script>
<script src="./js/bootstrap-treeview.js"></script>

jsp中

<div class="col-sm-3">
<input type="hidden" id="powerList" name="powerList" value='${powerList}'/>
<input type="hidden" id="ids" name="ids" value="${ids}" />
<c:if test="${powerList!=null}">
<div id="tree"></div>
</c:if>
</div>

js中

  1. var log = {
  2. initTree: function () {
  3. var data = $('#powerList').val();
  4. $('#tree').treeview({
  5. data: data,
  6. showCheckbox:false,
  7. multiSelect:false,
  8. onNodeSelected:function(event,node){ //选中节点其子节点,父节点
  9. var ids = [];
  10. var parentNode = $('#tree').treeview('getParent',node); //父节点//
  11. var nodes = node.nodes; //子节点
  12. if(nodes){
  13. for(var i=0; i<nodes.length; i++){
  14. ids.push(nodes[i].id)
  15. var childNode = nodes[i].nodes;
  16. if(childNode){
  17. for(var j=0; j<childNode.length; j++){
  18. ids.push(childNode[j].id)
  19. }
  20. }
  21. }
  22. }else{
  23. ids.push(node.id)
  24. }
  25. //console.info(ids);
  26. $('#ids').val(ids);
  27. setTimeout(function () {
  28. log.reload();
  29. }, 1000)
  30. },
  31. onNodeUnselected:function(event,node){
  32. $('#ids').val('');
  33. setTimeout(function () {
  34. log.reload();
  35. }, 1000)
  36. }
  37. });
  38.  
  39. }
    };

这里得到节点的id的时候,有点小问题

  1. @RequestMapping(value = "view")
  2. public ModelAndView toLog(ModelAndView modelAndView) throws Exception {
  3. modelAndView.setViewName("system/log");
  4. try{
  5. List<TreeObject> list = getTree(Long.parseLong("-1"));
  6. TreeObject treeObject = new TreeObject();
  7. treeObject.setId(-1L);
  8. treeObject.setText("全部菜单");
  9. State rootState = new State();
  10. rootState.setExpanded(true);
  11. rootState.setChecked(false);
  12. treeObject.setState(rootState);
  13.  
  14. //只显示递归产生的两层
  15. TreeObject treeObj = new TreeObject();
  16. for(int i = 0; i < list.size(); i++){
  17. List<TreeObject> list2 = list.get(i).getNodes();
  18. if(list2 != null && list2.size() > 0){
  19. for(int j = 0; j < list2.size(); j++){
  20. if(list2.get(j).getNodes() != null){
  21. list2.get(j).setNodes(null);
  22. }
  23. }
  24. }
  25. }
  26. treeObject.setNodes(list);
  27. modelAndView.addObject("powerList", "[" + JSON.toJSONString(treeObject) + "]");
  28. }catch(Exception ex){
  29. logger.error("进入日志管理页面出错!",ex);
  30. }
  31. return modelAndView;
  32. }
  33.  
  34. //递归树
  35. public List<TreeObject> getTree(Long parentid) {
  36. List<TreeObject> list = new ArrayList<TreeObject>();
  37. List<TreeObject> total = new ArrayList<TreeObject>();
  38. Map<String, Object> map = new HashMap<String, Object>();
  39. map.put("parent_id", parentid);
  40. map.put("sys_type", 1);
  41. List<Power> powerList = powerService.getPowerByGroupLevel(map);
  42. for (Power power : powerList) {
  43. TreeObject tb = new TreeObject();
  44. tb.setId(power.getPower_id());
  45. tb.setText(power.getPower_name());
  46. State state = new State();
  47. state.setChecked(false);
  48. state.setExpanded(false);
  49. if (power.getChildcnt() > 0) {
  50. List<TreeObject> child = getTree(power.getPower_id());
  51. tb.setNodes(child);
  52. }
  53. tb.setState(state);
  54. list.add(tb);
  55. }
  56. total.addAll(list);
  57. return total;
  58. }

bootstrap-treeview的 简单使用的更多相关文章

  1. 对bootstrap modal的简单扩展封装

    对bootstrap modal的简单扩展封装 参考自:http://www.muzilei.com/archives/677   注:原文不支持bootstrap新版本,并且居中等存在问题 此段时间 ...

  2. Bootstrap treeview增加或者删除节点

    参考(AddNode: http://blog.csdn.net/qq_25628235/article/details/51719917,deleteNode:http://blog.csdn.ne ...

  3. 初始化bootstrap treeview树节点

    最近在做启明星图库时,使用了Jquery Bootstrap  Treeview插件.但是,遇到了一个初始化的问题.先看效果如下: 当用户打开图库时,左边分类第一个类别是“所有分类”,默认需要选中. ...

  4. webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部署

    本文为大家讲解的是webUI框架miniUI,easyUI,extJS,Bootstrap简介及简单部属,感兴趣的同学参考下 ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端a ...

  5. Bootstrap在线编辑器简单分享

    Bootstrap 已经使响应式网站开发变得简单很多. 但是如果你不必手动写全部代码,事情会如何呢? 如果你可以自由地选择你想要使用的Bootstrap 组件.并可以把它们拖拽到画布中,事情会如何呢? ...

  6. jQuery treeview的简单用法

    最近的项目要用到treeview插件,刚好就自己整理一下这方面的资料. 1.文档树示例 最简单的一个例子就是文档树的实现.效果如下图所示. 在使用treeview之前,html文档中需要包含几个jqu ...

  7. BootStrap 按钮组简单介绍

    学会按钮组需要掌握以下几个类. btn   btn-group btn-toolbar  btn-group-vertical   和 下拉菜单的基本类 dropdown-toggle dropdow ...

  8. BootStrap TreeView使用示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. bootstrap treeview 树形数据生成

    这个问题还是挺经典的,后台只是负责查出所有的数据,前台js来处理数据展示给treeview;show you the code below:<script> $(function () { ...

  10. bootstrap treeview实现菜单树

    本博客,介绍通过Bootstrap的treeview插件实现菜单树的功能. treeview链接:http://www.htmleaf.com/Demo/201502141380.html ORM框架 ...

随机推荐

  1. ABAP-HTTP发送JSON

    1. HTTP发送JSON格式数据: function zap_01_url_sap_to_c3 . *"------------------------------------------ ...

  2. 压缩文件tar.gz和zip之间的区别

    我们在开发的时候通常要先下载相关的软件或者是源码,或者是jar包.在下载东西的时候总是碰见后缀是.tar.gz和.zip的问题,搞不清楚是怎么回事,不晓得下载哪个文件才是对自己有用的.现在我知道了,其 ...

  3. Spring 中的国际化Message的简单例子(ApplicationContext) 不跟框架集成的版本

    首先,建立一个描述message的XML文件,名为messages.xml     <?xml version="1.0" encoding="UTF-8" ...

  4. mysql 存储过程分页 转载

    /* --名称:MYSQL版查询分页存储过程 by peace 2013-8-14 --输入参数:@fields -- 要查询的字段用逗号隔开 --输入参数:@tables -- 要查询的表 --输入 ...

  5. OpenCv 人脸识别 基础

    #include <opencv2\opencv.hpp> #include <iostream> using namespace std; int main() { // 摄 ...

  6. Web标准:三、二列和三列布局

    知识点: 1.二列自适应宽度 2.二列固定宽度 3.二列固定宽度居中 4.xhtml的块级元素(div)和内联元素(span) 5.float属性 6.三列自适应宽度 7.三列固定宽度 8.三列固定宽 ...

  7. vs code 插件推荐

    通用插件 HTML Snippets 超级实用且初级的 H5代码片段以及提示 HTML CSS Support 让 html 标签上写class 智能提示当前项目所支持的样式新版已经支持scss文件检 ...

  8. Intersection of Two Linked Lists(LIST-2 POINTER)

    Write a program to find the node at which the intersection of two singly linked lists begins. For ex ...

  9. 基于AspectJ的XML方式进行AOP开发

    -------------------siwuxie095                                 基于 AspectJ 的 XML 方式进行 AOP 开发         1 ...

  10. tomcat启动时端口占用的问题怎么解决

    PS:web项目在启动的时候,一般会报Address already in use: bind,常规的处理思路为:删除任务管理器中的javaw.exe进程即可:当删除仍然解决不了时,一般处理思路如下, ...