이 글은 부트스트랩 트리뷰를 사용해 데이터를 동적으로 로드하고, 빠른 검색 기능을 추가한 내용입니다. 필요한 친구가 참고하면 됩니다.
앞에 작성:
jQuery 다중 레벨 목록 트리 플러그- in은 간단하고 우아한 방식으로 부트스트랩을 기반으로 뷰 트리, 목록 트리 등과 같은 일부 상속 트리 구조를 표시합니다.
Bootstrap Tree View는 실용적인 Bootstrap 트리 메뉴 특수 효과 플러그인입니다. Bootstrap에서 제작한 많은 페이지에는 이제 이 기능이 필요합니다. Bootstrap 3 버전 및 jQuery 2.0 이상이 필요합니다. . 다양한 매개변수 사용자 정의 기능을 지원합니다. 색상, 배경색, 아이콘, 링크 등은 여전히 매우 좋습니다.
일시적으로 다음 주소로 이동하세요: http://jonmiles.github.io/bootstrap-treeview/
좋아요, 더 이상 고민하지 말고 시작해 보겠습니다.
사용자가 지방 및 시의 지역명 정보(사용자 참조용, 작성 표준화 및 템플릿 가져오기에 사용)를 빠르게 쿼리하고 이를 트리 구조로 표시해야 합니다.
최종 효과 표시:
1. 데이터 테이블 구조 데이터 소스는 자체 연관 구조인 시·도 지역 정보 테이블입니다. 사진과 같습니다.
2. 프론트 페이지
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("省市区地域信息加载失败!") } }); });
3. 메인 배경 코드 배경은 SpringMVC+를 사용합니다. Spring+Mybatis 프레임워크 다음은 컨트롤러 레이어 코드입니다
@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; }
위 내용은 모든 사람을 위해 컴파일한 내용입니다.
관련 기사:
ui-route를 사용하여 AngularJS에서 다층 중첩 라우팅 구현(자세한 튜토리얼)
Vue+jquery를 사용하여 테이블의 지정된 열 텍스트를 줄이는 방법
위 내용은 Bootstrap 프레임워크에서 treeview를 사용하여 데이터를 동적으로 로드하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!