您好,欢迎访问一九零五行业门户网

Bootstrap treeview实现动态加载数据及快捷搜索功能的实现

本文实现了运用bootstrap treeview实现动态加载数据,并且添加快捷搜索功能,需要的朋友参考下,希望能帮助到大家。
【相关视频推荐:bootstrap教程】
写在前面:
jquery多级列表树插件基于bootstrap,以简单和优雅的方式来显示一些继承树结构,如视图树、列表树等。
实用bootstrap树形菜单特效插件bootstrap tree view,非常不错的bootstrap插件,现在很多bootstrap制作的页面都需要此功能,此插件需要bootstrap3版本以及jquery 2.0极以上版本支持,支持众多参数自定义功能,颜色、背景色、图标、链接等,还是很不错的。
好了,话不多说,开整。
要求用户能够快速查询到省市区的区域名称信息(给用户参考,用于规范书写导入模板),并且以树形结构展示。
最终效果展示:
一、 数据表结构 数据源为省市区地域信息表,该表为自关联结构。如图:
二、前台页面
1.页面引入
<link rel="stylesheet" href="项目静态资源路径/bootstrap-treeview/css/bootstrap.css" rel="external nofollow" > <script type="text/javascript" src="项目静态资源路径/js/jquery/3.1.0/jquery-3.1.0.min.js"></script> <script type="text/javascript" src="项目静态资源路径/bootstrap/bootstrap.js"></script> <script type="text/javascript" src="项目静态资源路径/bootstrap-treeview/js/jquery.js"></script> <script type="text/javascript" src="项目静态资源路径/bootstrap-treeview/js/bootstrap-treeview.js"> </script>
2.页面展示区
<!-- 省市区地域查询展示 --> <p class="container">  <p class="row">  <p class="col-sm-4">   <h4>快捷搜索</h4>   <!-- <form> -->   <p class="form-group">    <label for="input-search" class="sr-only">快捷搜索:</label>    <input type="input" class="form-control" id="input-search" placeholder="请输入要查询的省市区名称信息..." value="">   </p>   **_ <!-- 该部分为复选框,用于丰富搜索体验,本文忽略<p class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-ignore-case" value="false"/>     忽略大小写    </label>   </p>   <p class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-exact-match" value="false">     准确匹配    </label>   </p>   <p class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-reveal-results" value="false">     显示结果    </label>   </p> -->_**   <button type="button" class="btn btn-success" id="btn-search">搜索</button>   <button type="button" class="btn btn-default" id="btn-clear-search">清除</button>   <!-- </form> -->  </p>  <p class="col-sm-4">   <h4>省市区名称层级树</h4>   <p id="treeview-searchable" class=""></p>  </p>  <p class="col-sm-4">   <h4>查询结果展示</h4>   <p id="search-output"></p>  </p>  </p>  </p>
3.js 脚本
$(function () {  var defaultdata;   $.ajax({    type: post,    url: 项目请求路径方法.json,    datatype: json,    success: function (result) {     defaultdata=result;     var initsearchabletree = function() {     return $('#treeview-searchable').treeview({      data: defaultdata,      nodeicon: 'glyphicon glyphicon-globe',      emptyicon: '', //没有子节点的节点图标      //collapsed: true,     });     };     var $searchabletree = initsearchabletree();     $('#treeview-searchable').treeview('collapseall', {      silent : false//设置初始化节点关闭    });     var findsearchablenodes = function() {     return $searchabletree.treeview('search', [ $.trim($('#input-search').val()), { ignorecase: false, exactmatch: false } ]);     };     var searchablenodes = findsearchablenodes();     // select/unselect/toggle nodes     $('#input-search').on('keyup', function (e) {     var str = $('#input-search').val();      if($.trim(str).length>0){      searchablenodes = findsearchablenodes();     } else {     $('#treeview-searchable').treeview('collapseall', {       silent : false //设置初始化节点关闭     });     }     //$('.select-node').prop('disabled', !(searchablenodes.length >= 1));     });    var search = function(e) {      var pattern = $.trim($('#input-search').val());      var options = {      ignorecase: $('#chk-ignore-case').is(':checked'),      exactmatch: $('#chk-exact-match').is(':checked'),      revealresults: $('#chk-reveal-results').is(':checked')      };      var results = $searchabletree.treeview('search', [ pattern, options ]);      var output = '<p>' + results.length + ' 匹配的搜索结果</p>';      $.each(results, function (index, result) {      output += '<p>- <span style="color:red;">' + result.text + '</span></p>';      });      $('#search-output').html(output);     }     $('#btn-search').on('click', search);     $('#input-search').on('keyup', search);     $('#btn-clear-search').on('click', function (e) {      $searchabletree.treeview('clearsearch');      $('#input-search').val('');      $('#search-output').html('');      $('#treeview-searchable').treeview('collapseall', {      silent : false//设置初始化节点关闭     });     });        },    error: function () {     alert(省市区地域信息加载失败!)    }   });  });
三、后台主要代码 后台采用springmvc+spring+mybatis框架, 以下为controller层代码
@responsebody@requestmapping(value = /queryareainfo, method = { requestmethod.post }, produces = mediatype.application_json_value) public list<object> queryareainfo() { list<areavo> areainfo=new arraylist<>(); try { //获取缓存中的省市区信息(本项目直接从缓存中获取,也可以单独写方法到service、dao层查询) ecncsysconfig sysconfig = new ecncsysconfig(); areainfo = sysconfig.init_sys_ecnc_areavo; } catch (throwable e) { e.printstacktrace(); } //盛放省份 list<object> result=new arraylist<>(); for (areavo areavo : areainfo) { map<string, object> map= new hashmap<>(); if(2.equals(areavo.getgrade())){ map.put(text, areavo.getname()); //盛放地市 list<object> clist=new arraylist<>(); for (areavo cvo : areainfo) {  map<string, object> cmap=new hashmap<>();  if (cvo.getparentid() != null && cvo.getparentid().equals(areavo.getid())) {  cmap.put(text, cvo.getname());  //盛放区县  list<object> rlist=new arraylist<>();  for (areavo rvo : areainfo) {  map<string, object> rmap=new hashmap<>();  if (cvo.getid().equals(rvo.getparentid())) {  rmap.put(text, rvo.getname());  rlist.add(rmap);  }  }  cmap.put(nodes, rlist);  clist.add(cmap);  } } map.put(nodes, clist); result.add(map); } } return result; }
相关推荐:
ajax实现动态加载数据的实力分享
javaweb项目中关于dll文件动态加载的方法实例
javascript使用ajax进行checkbox复选框的动态加载
以上就是bootstrap treeview实现动态加载数据及快捷搜索功能的实现的详细内容。
其它类似信息

推荐信息