extjs4 非同步樹的寫法
The data for this tree is asynchronously loaded through a TreeStore and AjaxProxy.
js程式碼如下:
Ext.require([
'Ext.tree.*',
'Ext.data.*',
'Ext.tip.*'
]);
Ext.onReady(function() {
Ext.QuickTips.init();
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'organization!getDirectSubordinates.action'
},
root: {
text: '根節點',
id: '0',
expanded: true
},
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}]
});
var tree = Ext.create('Ext.tree.Panel', {
store: store,
rootVisible:false,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop'
}
},
renderTo: 'tree-div',
height: 300,
width: 250,
title: 'Files',
useArrows: true,
dockedItems: [{
xtype: 'toolbar',
items: [{
text: 'Expand All',
handler: function(){
tree.expandAll();
}
}, {
text: 'Collapse All',
handler: function(){
tree.collapseAll();
}
}]
}]
});
});
java程式碼如下:
package com.dahuatech.work.action;
@Namespace("/")
@Scope("prototype")
@Controller(value = "organization")
public class OrganizationAction extends BaseAction {
private String node;
@Action(value = "getDirectSubordinates")
public String getDirectSubordinates() throws Exception {
JSONArray json = new JSONArray();
if (node.equals("0")) {
JSONObject object = new JSONObject();
object.put("id", "1");
object.put("text", "廣東");
object.put("cls", "folder");
json.add(object);
}
if (node.equals("1")) {
JSONObject ob1 = new JSONObject();
ob1.put("id", "2");
ob1.put("text", "11RPU");
ob1.put("cls", "folder");
json.add(ob1);
}
if (node.equals("2")) {
JSONObject ob1 = new JSONObject();
ob1.put("id", "3");
ob1.put("text", "11Chanel");
ob1.put("leaf", true);
ob1.put("cls", "file");
JSONObject ob2 = new JSONObject();
ob2.put("id", "4");
ob2.put("text", "22Chanel");
ob2.put("leaf", true);
ob2.put("cls", "file");
json.add(ob1);
json.add(ob2);
}
ActionContext ctx = ActionContext.getContext();
HttpServletResponse response = (HttpServletResponse) ctx
.get(ServletActionContext.HTTP_RESPONSE);
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(json.toString());
return null;
}
public String getNode() {
return node;
}
public void setNode(String node) {
this.node = node;
}
}
作用:生成非同步請求時的json資料。
當展開節點時,前臺會把json資料中節點的id通過node引數傳送到後臺。
相關文章
- 二叉樹的非遞迴遍歷寫法二叉樹遞迴
- 關於利用go實現非同步讀寫的寫法分享Go非同步
- 同步、非同步、阻塞、非阻塞的區別非同步
- 同步非同步,阻塞非阻塞非同步
- 非同步、同步、阻塞、非阻塞非同步
- 同步、非同步、阻塞、非阻塞非同步
- 個人線段樹寫法 & 注意逝項
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- 同步、非同步、阻塞、非阻塞的簡單理解非同步
- 同步與非同步、阻塞與非阻塞的理解非同步
- 同步非同步 與 阻塞非阻塞非同步
- 理解阻塞、非阻塞、同步、非同步非同步
- 同步、非同步,阻塞、非阻塞理解非同步
- 同步、非同步、阻塞與非阻塞非同步
- 同步、非同步、阻塞和非阻塞非同步
- 同步阻塞、同步非阻塞、多路複用的介紹
- [轉]阻塞/非阻塞與同步/非同步非同步
- 同步與非同步 阻塞與非阻塞非同步
- java同步非阻塞IOJava
- 非同步和非阻塞非同步
- 精讀《手寫 SQL 編譯器 - 語法樹》SQL編譯
- 真正的 Tornado 非同步非阻塞非同步
- 怎樣理解阻塞非阻塞與同步非同步的區別?非同步
- SQL抽象語法樹及改寫場景應用SQL抽象語法樹
- SQL 抽象語法樹及改寫場景應用SQL抽象語法樹
- HDU4843Wow! Such Sequence!(樹狀陣列寫法)陣列
- 徹底搞懂同步非同步與阻塞非阻塞非同步
- Extjs4 專案的部署JS
- 從同步原語看非阻塞同步以及Java中的應用Java
- 對於同步、非同步、阻塞、非阻塞的幾點淺薄理解非同步
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- Socket程式設計中的同步、非同步、阻塞和非阻塞(轉)程式設計非同步
- 樹(2)--二叉樹的遍歷(非遞迴)+線索二叉樹二叉樹遞迴
- 語法樹
- ExtJs4之TreePanelJS
- 【OS】同步非同步/阻塞非阻塞、併發並行序列的區分非同步並行
- 對執行緒、協程和同步非同步、阻塞非阻塞的理解執行緒非同步
- 大白話搞懂什麼是同步/非同步/阻塞/非阻塞非同步