Ext 팝업 트리
이것은 ext.window를 팝업 창으로 하기 위해 ext.treepanel에 행정 구획 트리를 표시하고 확인 단추를 누르면 선택한 노드의 id,code,name로 돌아갑니다.
이것은 프로젝트 기능이 완성된 후의 간략한 버전으로 개인적으로는 여기서부터 확장하기 쉽다고 생각한다.
<script type="text/javascript">
var win ;
var selid;
var selcode;
var selname;
Ext.onReady(function(){
var dataRoot = new Ext.tree.AsyncTreeNode({
id: '-1',
text: ' ',
expanded: true
});
var dataTreeLoader = new Ext.tree.TreeLoader({dataUrl: '${ctx}/hp/baseinfo/listAllArea.action'});
dataTreeLoader.on("beforeload", function(treeLoader, node) {
//loader
treeLoader.baseParams.nodeid= node.id;
Ext.get(document.body).mask();
}, this);
dataTreeLoader.on("load", function(treeLoader, node) {
Ext.get(document.body).unmask();
}, this);
var tree=new Ext.tree.TreePanel({
el:'treediv',
animate : true,
height : 260,
width : 240,
autoScroll : true,
containerScroll : true,
lines : true,
root: dataRoot,
loader: dataTreeLoader,
rootVisible: false,
listeners : {
'click' : function(node, event) {
//
selid = node.id;
selcode = node.attributes.code;
selname = node.attributes.name;
},
'dblclick':function(node,event){
//
}
}
});
tree.render();
tree.expandAll();//
var button = Ext.get('btnChooseArea');//
if(button!=null){// null, , win
button.on('click', function(){
if(!win){
win = new Ext.Window({
plain : true,
layout : 'form',
resizable : true, //
draggable : true, //
closeAction : 'hide',// close or hide
modal : true, //
width : 260,
height : 350,
title : ' ',
items : [tree], // tree
buttonAlign : 'right',
loadMask : true,
buttons : [{
xtype : 'button',
align : 'right',
text : ' ',
handler : function() {
//
document.getElementById("districtid").value=selid;
document.getElementById("discode").value=selcode;
document.getElementById("districtname").value=selname;
win.hide();
}
}, {
xtype : 'button',
text : ' ',
handler : function() {
win.hide();
}
}]
});
}
win.setPosition(this.getXY());
win.show(this);
});
}
});
</script>
<s:hidden id="districtid" name="model.area.id"></s:hidden>
<s:hidden id="discode" name="model.discode"></s:hidden>
<s:textfield id="districtname" name="model.districtname" cssStyle="width:400px" readonly="true"></s:textfield>
<input type="button" id="btnChooseArea" value=" "/>
<div id="treediv"></div>
private List<Map<String, Object>> allNodes = new ArrayList<Map<String, Object>>();
public List<Map<String, Object>> getAllNodes() {
return allNodes;
}
public void setAllNodes(List<Map<String, Object>> allNodes) {
this.allNodes = allNodes;
}
//
public String doTreeAllNodes() throws Exception {
if (nodeid.equalsIgnoreCase("-1")) {
nodeid=null;
}
//
List<Area> childrenList = ServiceFactory.getBean(AreaDAO.class)
.queryByPropertyLogic("parent.id", nodeid,
"seq");
for (Area child : childrenList) {
Map<String, Object> m = new HashMap<String, Object>();
m.put("id", child.getId());
m.put("text", child.getName());
//code name extnode , node.attributes
m.put("code", child.getCode());
m.put("name", child.getName());
//
if (child.getChildren().size() == 0)
m.put("leaf", true);
else
m.put("leaf", false);
//
if (this.isExpanded)
m.put("expanded", true);
allNodes.add(m);
}
return SUCCESS;
}
}
<action name="listAllArea" method="doTreeAllNodes"
class="com.jdgm.hp.web.action.baseinfo.family.AreaTreeAction">
<result type="json">
<param name="root">allNodes</param>
</result>
</action>
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java의 Struts2 파일 업로드 및 다운로드 예파일 업로드 Struts 응용 프로그램에서 File Upload 차단기와 Jakarta Commons File Upload 구성 요소로 파일을 업로드할 수 있습니다. Jsp 페이지의 파일 업로드 폼에 파일 탭을 사용...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.