easyui tree的简单使用

1、帮助文档

先看下API中怎么说的吧:




2、前台:

	<div region="center" collapsible="false"  style="width:100%;margin-top:5px;margin-left:5px;" border="false">
		<div style="float: left;margin-left: 10px;" id="rightC">
			<ul id="tree" ></ul>
		</div>
	</div>

 
		  $("#tree").tree({
		  url:'getOrgTree.do',
		  method: 'GET',
		  animate: true,
		  checkbox: true,
		  cascadeCheck:true,//层叠选中
		  lines:true,//显示虚线效果
		  onLoadSuccess:function(node,data){
			  var nodeDep = $('#tree').tree('find',checkeid);
			  if (null != nodeDep && undefined != nodeDep)
			  {
				  $('#tree').tree('check',nodeDep.target);
			  }
		  },
		  onCheck:function(node, checked)
		  {
			  if (checked)
			  {
				  //这段逻辑自拟
 			  } 
 			  else 
 			  { 
 			  }
 			
			} 
		 });


3、后台


后台这段代码个人觉得写的不好,但是又没查到怎样写,暂且先这样吧


    public class OrgTree
    {
        private String id;
        
        private String text;
        
        private List<OrgTree> children = new ArrayList<OrgTree>();
        
        private String state;
        //getter & setter
    }


上面这个class是按照下面这个来加字段的:

    @RequestMapping("/getOrgTree")
    public void getOrgTree(String id, HttpServletRequest request, HttpServletResponse response)
    {
        List<Organization> orgList = new ArrayList<Organization>();
        OrgModel model = new OrgModel();
        String spid = "";
        //父节点的id为-1
        model.getBean().setParentid("-1");
    //按条件查询出所有的父节点
        orgList = organService.selectByCondition(model);
        
        // 查询出所有的父节点
        List<OrgTree> otree = new ArrayList<OrgTree>();
        // 遍历所有父节点
        if (null != orgList && orgList.size() > 0)
        {
            for (Organization o : orgList)
            {
                OrgTree ot = new OrgTree();
                ot.setId(o.getId());
                ot.setText(o.getOrgName());
                
                OrgModel childMod = new OrgModel();
                childMod.getBean().setParentid(o.getId());
                //根据父节点id查询出其子节点
                List<Organization> orgChild = organService.selectByCondition(childMod);
                if (orgChild != null && orgChild.size() > 0)
                {
                    List<OrgTree> list = new ArrayList<OrgTree>();
                    for (Organization child : orgChild)
                    {
                        OrgTree ochild = new OrgTree();
                        ochild.setId(child.getId());
                        ochild.setText(child.getOrgName());
                        list.add(ochild);
                    }
                    if(list.size() < 0)
                    {
                        ot.setState("open");
                    }
                    else
                    {
                        ot.setState("closed");
                    }
                    ot.setChildren(list);
                }
                
                otree.add(ot);
                
            }
        }
        

        ComUtil.writerJson(response, otree);
    }




效果如下:





本来是想实现每次只能选择一个选项的,但是一直有问题,问题出在那个cascadeCheck属性上,选择了一个节点时,就把另一个选中的节点给unchecked,但是由于这个层叠选中状态的,在只有一个子节点时,把父节点unchecked,但是同时子节点也就去勾选了,该功能未实现,待修改下方法在说。



小例子,记录...


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值