jquery树形插件zTree高级使用详解

  • 时间:
  • 浏览:14

利用初级zTree停止对属性构造停止操纵的时分,做好的体例是参考民网的API文档。

本文简朴引见下若何经由过程背景通报过去1个树形构造的树,而且经由过程页里停止减载。

【取背景交互步调】1、编写页里,引进zTree相干插件;2、编写js剧本,设定树形构造的根本属性;3、编写zTree的PO工具;4、编写前往属性构造的办法(json格局前往);5、页里要求树。

1、引进zTree相干的插件:


 

 


2、编写js剧本,设定树形构造的根本属性

// zTree 的参数设置装备摆设,深切利用请参考 API 文档(setting 设置装备摆设详解)
 var setting = {
 check:{
 enable: false,
 //autoCheckTrigger:true,
 //chkStyle:"none"
 },
 callback:{
 onClick:queryRoleByEmployee
 }
 };
function queryRoleByEmployee(event, treeId, treeNode){
 //console.info(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
 //console.info("--------"+treeNode.isParent);
 if(treeNode.isParent == true){
 //将脚色的树形构造清晰
 $.fn.zTree.destroy("roleTree");
 return ;
 }
 $.get('<%=request.getContextPath()%>/'+treeNode.objCode+'/role',{"coddd":treeNode.isParent},function(data){
 console.info(data);
 zTreeObj = $.fn.zTree.init($("#roleTree"), settingRole, data);
 });
 }

3、编写zTree的PO工具

public class DimsTree {
 
 //除树自己的属性,借能够自界说属性.
private Object objCode;
 
 //树形构造展现的称号
 private String name;
 
 //是不是翻开属性
 private String open;
 
 //是不是根节面
 private boolean isParent;
 
 //url
 private String url;
 
 //子节面
 private List children;
 
 //是不是被选中
 private boolean checked;
//省略gettings战settings办法
}

4、编写前往属性构造的办法(json格局前往)

@ResponseBody
 @RequestMapping(value="/user_role1")
 public List userRole1(Model model){
 //宿舍疑息Tree
 List dimsTreeList = new ArrayList();
 //减载用户疑息列表,脚链需求减载宿舍疑息,将用户疑息参加到宿舍疑息中.
 List dormitoiryList = dormitoryDao.list();
 for(Dormitory dorm: dormitoiryList){
 DimsTree dt = new DimsTree();
 dt.setName(dorm.getDormCode());
 dt.setParent(true);//根节面
 dt.setObjCode(dorm.getDormCode());
 dt.setChildren(employee2DimsTree(dorm));
 dimsTreeList.add(dt);
 }
 
 model.addAttribute(dimsTreeList);
 //减载脚色疑息列表,对已选中的脚色停止设置checked=true属性。
 //那个应当设置成同步减载的体例,按照差别的用户查询差别的脚色疑息.
 logger.info("-------------->"+dimsTreeList);
 return dimsTreeList;
// return "other/user_role";
 }
 
 /**
  * 按照宿舍,查询宿寒舍的成员
  * @param dorm
  * @return
  */
 public List employee2DimsTree(Dormitory dorm){
  //那个应当是正在service层停止真现得 
  String sql = "select * from t_employee t where t.dorm_code = ?";
  logger.info("----------->查询职员宿舍疑息参数:"+dorm.getDormCode());
  List employeeList = employeeDao.listBySql(sql, new Object[]{dorm.getDormCode()});
  List dimsTreeList = new ArrayList();
  for(Employee ee : employeeList){
   DimsTree dt = new DimsTree();
   dt.setName(ee.geteName());
   dt.setParent(false);
   dt.setObjCode(ee.getUstcAccount());
   dimsTreeList.add(dt);
  }
  return dimsTreeList;
 }

5、页里要求树

 $(document).ready(function(){
 $.get('<%=request.getContextPath()%>/user_role1', function(data){
  console.info(data);
  //zNodes = data;
  zTreeObj = $.fn.zTree.init($("#dormitoryTree"), setting, data);
 });
 //console.info($.fn.zTree.getZTreeObj("dormitoryTree"));
 //console.info(zTreeObj.getNodes());
 });

以上便是本文的全数内容,期望对各人的进修有所帮忙,也期望各人多多撑持剧本之家。