在Bootstrap框架裡使用treeview如何實現動態載入數據

亚连
發布: 2018-06-13 13:59:44
原創
5054 人瀏覽過

本文實作了運用bootstrap treeview實作動態載入數據,並且新增快捷搜尋功能,需要的朋友參考下

##寫在前面:

jQuery多層列表樹外掛程式基於Bootstrap,以簡單而優雅的方式來顯示一些繼承樹結構,如視圖樹、列表樹等。

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

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

好了,話不多說,開整。

要求使用者能夠快速查詢到省市區的區域名稱資訊(給使用者參考,用於規範書寫導入模板),並且以樹狀結構展示。

最終效果展示:

一、資料表結構 資料來源為省市區地域資訊表,此表為自關聯結構。如圖:

二、前台頁面

1.頁面引入

    
登入後複製

2.頁面展示區

 

快捷搜索

**_ _**

省市区名称层级树

查询结果展示

登入後複製

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 = '

' + results.length + ' 匹配的搜索结果

'; $.each(results, function (index, result) { output += '

- ' + result.text + '

'; }); $('#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 queryAreaInfo() { List areaInfo=new ArrayList<>(); try { //获取缓存中的省市区信息(本项目直接从缓存中获取,也可以单独写方法到Service、Dao层查询) EcncSysConfig sysConfig = new EcncSysConfig(); areaInfo = sysConfig.INIT_SYS_ECNC_AREAVO; } catch (Throwable e) { e.printStackTrace(); } //盛放省份 List result=new ArrayList<>(); for (AreaVO areaVO : areaInfo) { Map map= new HashMap<>(); if("2".equals(areaVO.getGrade())){ map.put("text", areaVO.getName()); //盛放地市 List cList=new ArrayList<>(); for (AreaVO cVO : areaInfo) { Map cMap=new HashMap<>(); if (cVO.getParentId() != null && cVO.getParentId().equals(areaVO.getId())) { cMap.put("text", cVO.getName()); //盛放区县 List rList=new ArrayList<>(); for (AreaVO rVO : areaInfo) { Map 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; }
        
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

在AngularJS中使用ui-route實作多層巢狀路由(詳細教學)

使用Vue jquery如何實現表格指定列的文字收縮

使用vue如何實現的購物商城

如何實現網頁滑鼠特效(詳細教學)

以上是在Bootstrap框架裡使用treeview如何實現動態載入數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!