jquery easyui tree 비동기 로드 서브 노드 문제 분석

3135 단어 easyuitree
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_jb51.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 뒤에 하나의 변수 로 시간 스탬프 를 처리 해 야 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기