UserDataUncoder uncoder = new UserDataUncoder(){
public Object getID(Object arg0) throws UncodeException {
TreeNode node = (TreeNode) arg0;
return node.getId();
}
public Object getParentID(Object arg0) throws UncodeException {
TreeNode node = (TreeNode) arg0;
return node.getParentId();
}
};
// 模型构造器,用于生成树模型
AbstractWebTreeModelCreator modelCreator = new AbstractWebTreeModelCreator(){
protected Node createNode(Object arg0, UserDataUncoder arg1) {
TreeNode node = (TreeNode) arg0;
WebTreeNode result = new WebTreeNode(node.getTitle(),"node"+node.getId());
result.setAttribute("nickId", node.getId()); // Ext风格的复选树
//result.setValue(node.getId()); // XTree风格的复选树
if(node.getUrl() != null && !node.getUrl().equals("")){ // 复选树可以不用设置action
result.setAction("javascript: doAction('"+node.getUrl()+"')");
}
return result;
}
};
modelCreator.init(request);
// 创建树模型(模型构造器在解码器的辅助下,生成树模型)
TreeModel treeModel = modelCreator.create(treeNodes, uncoder);
// 创建导向器
TreeDirector director = new DefaultTreeDirector();
// 树构造器
// WebTreeBuilder treeBuilder = new XTreeBuilder(); // XTtre风格
// WebTreeBuilder treeBuilder = new CheckXTreeBuilder(); // 普通XTree复选树
// WebTreeBuilder treeBuilder = new PrvCheckXTreeBuilder(); // 授权XTree复选树
WebTreeBuilder treeBuilder = new CheckExtTreeBuilder(); // 普通ExtTree复选树
// WebTreeBuilder treeBuilder = new PrvCheckExtTreeBuilder(); // 授权ExtTree复选树
treeBuilder.init(request);
// 导向器利用树模型和树构造器创建脚本
director.build(treeModel, treeBuilder);
String treeScript = treeBuilder.getTreeScript();
request.setAttribute("treeScript", treeScript);
request.getRequestDispatcher("/admin/left.jsp").forward(request, response);
jsp:
XTree:
获取选中的树节点js:
function showSelectedNodes(){
alert(getCheckValues());
}
html:
<input type="button" id="hqjd" value="获取节点" οnclick="showSelectedNodes()">
ExtTree:
获取选中的树节点js:
function treeRenderBeforeHandler(pTree){
// 坚挺节点选中事件
pTree.on("onChecked",function(node){
// code
});
// 获取选中节点值
Ext.get("hqjd").on("click",function(){
var checkedNodes = pTree.getChecked(); // 获取所有的选中节点
var text = "";
for(var i=0; i<checkedNodes.length; i++){
var checkedNode = checkedNodes[i];
text += checkedNode.attributes.nickId + ",";
}
alert(text);
});
}
html:
<input type="button" id="hqjd" value="获取节点" >