ExtJs纵行Tree以及Tree下节点循环遍历

本文介绍了一个使用ExtJS库实现的树状面板示例。该示例通过前台JavaScript代码与后台Servlet交互来动态加载树结构数据。前台代码使用TreeLoader组件加载数据,并在页面上渲染一个树形面板;后台Servlet负责接收请求参数并返回相应的树节点数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前台JS
Ext.onReady(function(){
var treeLoader = new Ext.tree.TreeLoader({
dataUrl:'../servlet/basic?action=treePanelTest',
listeners:{
beforeload:function(treeLoader,node){
alert(node.attributes.id);
treeLoader.baseParams.parentID = node.attributes.id;
//将AsyncTreeNode中的id传给变量parentID,然后交个Servlet处理
}
}
});
var form = new Ext.tree.TreePanel({
renderTo:'hello',
root: new Ext.tree.AsyncTreeNode({id:'-1',text : '根节点'}),
rootVisible:true,//判断根节点是否显示
loader:treeLoader
});
});
后台Servlet:
JSONArray array = new JSONArray();
JSONObject json;
if ("-1".equals(req.getParameter("parentID"))) {
List<Company> list = CompanyService.getAllCompanyList();
for (Company company : list) {
json = new JSONObject();
json.accumulate("id", company.getId());
json.accumulate("text", company.getName());
json.accumulate("leaf", false);
array.add(json);
}
} else {
long parentID = Long.parseLong(req.getParameter("parentID"));
Company company = CompanyService.findCompanyByID(parentID);
for (Company dept : company.getDepartments()) {
json = new JSONObject();
json.accumulate("id", dept.getId());
json.accumulate("text", dept.getName());
json.accumulate("leaf", false);
array.add(json);
}
for (User user : company.getStaff()) {
json = new JSONObject();
json.accumulate("id", user.getId());
json.accumulate("text", user.getUserName());
json.accumulate("leaf", true);
array.add(json);
}
}
String retJSON = array.toString();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值