国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

Bootstrap treeview實現動態加載數據并添加快捷搜索功能

2019-11-19 14:34:32
字體:
來源:轉載
供稿:網友

寫在前面:

jQuery多級列表樹插件基于Bootstrap,以簡單和優雅的方式來顯示一些繼承樹結構,如視圖樹、列表樹等。

實用Bootstrap樹形菜單特效插件Bootstrap Tree View,非常不錯的Bootstrap插件,現在很多Bootstrap制作的頁面都需要此功能,此插件需要Bootstrap3版本以及jQuery 2.0極以上版本支持,支持眾多參數自定義功能,顏色、背景色、圖標、鏈接等,還是很不錯的。

具體效果請暫時移步: http://jonmiles.github.io/bootstrap-treeview/

好了,話不多說,開整。

要求用戶能夠快速查詢到省市區的區域名稱信息(給用戶參考,用于規范書寫導入模板),并且以樹形結構展示。

最終效果展示:

 

一、 數據表結構 數據源為省市區地域信息表,該表為自關聯結構。如圖:

 

二、前臺頁面

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.頁面展示區

<!-- 省市區地域查詢展示 --> <div class="container">  <div class="row">  <div class="col-sm-4">   <h4>快捷搜索</h4>   <!-- <form> -->   <div class="form-group">    <label for="input-search" class="sr-only">快捷搜索:</label>    <input type="input" class="form-control" id="input-search" placeholder="請輸入要查詢的省市區名稱信息..." value="">   </div>   **_ <!-- 該部分為復選框,用于豐富搜索體驗,本文忽略<div class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-ignore-case" value="false"/>     忽略大小寫    </label>   </div>   <div class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-exact-match" value="false">     準確匹配    </label>   </div>   <div class="checkbox">    <label>    <input type="checkbox" class="checkbox" id="chk-reveal-results" value="false">     顯示結果    </label>   </div> -->_**   <button type="button" class="btn btn-success" id="btn-search">搜索</button>   <button type="button" class="btn btn-default" id="btn-clear-search">清除</button>   <!-- </form> -->  </div>  <div class="col-sm-4">   <h4>省市區名稱層級樹</h4>   <div id="treeview-searchable" class=""></div>  </div>  <div class="col-sm-4">   <h4>查詢結果展示</h4>   <div id="search-output"></div>  </div>  </div>  </div>

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; }

總結

以上所述是小編給大家介紹的Bootstrap treeview實現動態加載數據并添加快捷搜索功能,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉禾县| 双鸭山市| 郁南县| 田阳县| 阿克| 孟连| 瓮安县| 长治县| 樟树市| 共和县| 鱼台县| 宝坻区| 奉节县| 泸溪县| 施甸县| 科技| 垫江县| 张家界市| 腾冲县| 沾益县| 女性| 丹巴县| 成武县| 景宁| 淮阳县| 岳西县| 铁力市| 江源县| 綦江县| 太康县| 平舆县| 白玉县| 成都市| 五莲县| 勃利县| 改则县| 兰州市| 阿城市| 乐都县| 方山县| 龙海市|