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="獲取節點" >