easyui tree的简单使用

1、帮助文档

所有节点都包含以下属性:

id:节点id,这个很重要到加载远程服务器数据 which is important to load remote data

text: 显示的节点文本

state: 节点状态, ‘open‘ 或者 ‘closed‘, 默认是 ‘open‘. 当设置为 ‘closed‘, 节点所有的子节点将从远程服务器站点加载

checked: 指明检查节点是否选中.

attributes: 可以添加到节点的自定义属性

children: 一个节点数组,定义一些子节点

一些示例:

异步加载树

tree 支持内置的异步加载模式,用户创建一个空的tree,然后定义一个远程服务器站点返回json数据用于填充tree来异步满足异步加载需求.例如:

<ul class="easyui-tree" data-options="url:‘get_data.php‘"></ul>

tree的加载是通过URL  ‘get_data.php‘站点.子节点的加载依赖于父节点的状态.当展开一个关闭节点,如果节点没有子节点加载,将发送节点id值作为http参数,参数命名为‘id‘到远程服务器,通过以上URL定义.检索子节点数据

看看这个从服务器返回的数据

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">  
        <strong><span style="color:#ff0000;"><ul id="tree" ></ul></span></strong>  
    </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  
}

@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,但是同时子节点也就去勾选了,该功能未实现,待修改下方法在说。

时间: 2024-10-24 11:17:44

easyui tree的简单使用的相关文章

如何采用easyui tree编写简单角色权限代码

首先每个管理员得对应一个角色: 而角色可以操作多个栏目,这种情况下我们可以采用tree多选的方式: 在页面上js代码: $('#Permission').dialog({ title: '栏目权限', closed: false }); $('#rtt').tree({ url: 'ashx/RoleService.ashx?action=RoleTree&Rid=' + raw.ID, method: 'get', animate: true, checkbox: true }); $('#R

Jquery easyui Tree的简单使用

Jquery easyui 是jQuery EasyUI是一组基于jQuery的UI插件集合,而jQuery EasyUI的目标就是帮助web开发者更轻松的打造出功能丰富并且美观的UI界面.开发者不需要编写复杂的javascript,也不需要对css样式有深入的了解,开发者需要了解的只有一些简单的html标签. Jquery easyui 官网:http://jeasyui.com/ ,中文网站:http://www.jeasyui.net/,jquery easyui 下载地址:http://

递归和循环---从EasyUI Tree 发现自己的硬伤

前一阵子,朋友托我帮忙用vb.net写一个数独游戏,我当时的第一个想法---万能的互联网肯定有资源,肯定有人写---当然这是必须的---我站在巨人的肩膀上帮朋友完成代码---但是我突然觉得自己站在巨人这么高的肩膀上太高耸,想要找一下脚踏实地的感觉,所以我想自己写写,看看能不能写出来,结果就是------我压根没有思路. 对,毫不夸张,无从下手. 更深刻的一件事就是项目中用的的树状结构(easyui tree 实现),同样是根据数据库动态生成,我站在巨人的肩膀上,看着网上类似的datatable转

.NET easyUI tree树状结构

简单的制作后台制作写一个json(string类型)格式 public partial class goodstype_type : System.Web.UI.Page { public string datalist = "",tree=""; goodstypeManage bll = new goodstypeManage(); goodstype model = new goodstype(); protected void Page_Load(objec

EasyUI Datagrid的简单使用

此前同样写过EasyUI Datagrid的demo,好记性不如烂笔头,何况记性也不是那么好,赶紧记录一下.照搬上一篇EasyUI Tree的格式. 实现效果:获取数据库表的数据,在EasyUI Datagrid上展示出来并使用分页控件进行分页. 项目.框架.数据库:创建的是Maven项目,采用Spring+SpringMVC+Mybatis框架,数据库SQL Server 2005 1.创建数据库表 表结构: 表数据: 2.通过mybatis逆向工程映射TreeTestTable(表名略丑)

JQuery EasyUi Tree获取所有checkbox选中节点的id和内容

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html>    <head>        <meta name="generator" content="HTML Tidy, see www.w3.org">      

[转]easyui tree 模仿ztree 使用扁平化加载json

原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.html 一.扩展原因 ztree使用了一种扁平化的数据加载方式,就是id(自身id),pid(父id)的方式,参考http://www.ztree.me/v3/demo.php#_102,于是扩展easyui tree 也使用这种亲民的方式: 二.基本方法 1,载入扩展文件 2,在JS中实例化TRE

支持泛型AVL Tree的简单实现,并和STL map比较了插入,删除,查找的性能

1.问题描述: 1)AVL tree是一种自平衡树.它通过左右子树的高度差来控制树的平衡,当高度差是不大于1的时候,认为树是平衡的.树的平衡保证了树在极端情况下 (输入序列不够随机)的性能.很显然当左右子树高度平衡,保证了任何插入,删除,查找操作平均性能呢个,当不平衡时(有的子树很高),当 要操作的元素在这个子树时,性能会很差: 2)AVL tree 和Red black tree 都是一种平衡树,它的操作的时间复杂度是:O(lgN) ,N是树的节点的数目: 3)本文实现了AVL Tree, 并

Easyui Tree方法扩展 - getLevel(获取节点级别)

Easyui Tree一直就没有提供这个方法,以前没有用到,所以一直没怎么在意,这次自己用到了,顺便扩展了一个方法,分享给大家. $.extend($.fn.tree.methods, { getLevel:function(jq,target){ var l = $(target).parentsUntil("ul.tree","ul"); return l.length+1; } }); 用法: var node = $().tree("getSele