AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > JavaScript

解析jquery easyui tree异步加载子节点问题

51自学网 http://www.wanshiok.com
easyui,tree,异步加载,easyui,tree,异步,jquery,easyui,异步树

easyui中的树可以从标记中建立,也可以通过指定一个URL属性读取数据建立。如果想建立一棵异步树,需要为每个节点指定一个id属性值,这样在加载数据时会自动向后台传递id参数。

<ul id="tt"></ul>

编写前台代码:

$('#tt').tree({  url:'/demo2/node/getNodes'  // The url will be mapped to NodeController class and getNodes method});

为测试用,建立一个节点的数据模型:

@Table(name="nodes")public class Node extends ActiveRecordBase{  @Id public Integer id;  @Column public Integer parentId;  @Column public String name;   public boolean hasChildren() throws Exception{    long count = count(Node.class, "parentId=?", new Object[]{id});    return count > 0;  }}

编写后台的控制器代码:

public class NodeController extends ApplicationController{  /**   * get nodes, if the 'id' parameter equals 0 then load the first level nodes,   * otherwise load the children nodes   * @param id the parent node id value   * @return the tree required node json format   * @throws Exception   */  public View getNodes(int id) throws Exception{    List<Node> nodes = null;     if (id == 0){  // return the first level nodes      nodes = Node.findAll(Node.class, "parentId=0 or parentId is null", null);    } else {  // return the children nodes      nodes = Node.findAll(Node.class, "parentId=?", new Object[]{id});    }     List<Map<String,Object>> items = new ArrayList<Map<String,Object>>();    for(Node node: nodes){      Map<String,Object> item = new HashMap<String,Object>();      item.put("id", node.id);      item.put("text", node.name);       // the node has children,       // set the state to 'closed' so the node can asynchronous load children nodes       if (node.hasChildren()){        item.put("state", "closed");      }      items.add(item);    }     return new JsonView(items);  }}

官网例子地址:http://www.jeasyui.com/tutorial/tree/tree2.php

demo下载:easyui-tree2_51zixue.rar 

重要的事情说三遍!!!

$('#tt').tree({  method:"POST",  url:'/demo2/node/getNodes'  // The url will be mapped to NodeController class and getNodes method});

method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

method一定要用POST,GET的话要在URL后面用一个变量来做时间戳处理。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持wanshiok.com。


easyui,tree,异步加载,easyui,tree,异步,jquery,easyui,异步树  
上一篇:jQuery插件zTree实现删除树子节点的方法示例  下一篇:bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法