读书人

Extjs中取父节点停所有子节点的数据

发布时间: 2013-06-19 10:26:41 作者: rapoo

Extjs中取父节点下所有子节点的数据
比如说一个树 tree

系统管理
菜单管理
角色管理
用户管理
密码修改

当我选择系统管理后,点击菜单排序按钮,在弹出的子窗口中显示这下面四个子菜单的排序数字信息,方便修改。
代码如下:


//========================菜单排序=====================
function semenu(){
var win2;
var sm = tree.getSelectionModel(); // 取得树的模式对象
var selectNode = sm.getSelectedNode(); // 取得当前选中的节点
var dep;
if (!win2) {
if(selectNode==null){
Ext.Msg.alert("信息","请先选中需修改的菜单!");
return;
}
if(!selectNode.hasChildNodes()){
Ext.Msg.alert("信息","请选择父节点菜单!");
return;
}
var leaf;

//这部分是获取当前节点下的子节点信息,打印出来四个子项的名称
selectNode.eachChild(function(child) {
alert(child.text);
})

var fm2 = new Ext.form.FormPanel({
bodyStyle : 'padding:10 ',
height : 180,
autoScroll : true,
width : 340,
frame : true,
labelSeparator : ":",
labelWidth:60,
url : '/menu_update.do',
layout : 'form',
border : false,
layout : 'column',
items : [{
columnWidth : .5,
labelWidth : 60,
layout : 'form',
items : [{
xtype : 'textfield',
fieldLabel : '',
name : 'privname',
id : 'privname',
value:selectNode.text,
hideLabel : true
}]
},

{
columnWidth : .5,
labelWidth : 60,
layout : 'form',
items:[{
xtype : 'textfield',
fieldLabel : '',
name : 'orderNum',
id : 'orderNum',
value : selectNode.attributes.order,
hideLabel : true
}]
}
]
});
win2 = new Ext.Window({
title : '菜单排序',
closable : true,
width:360,
height:215,
plain : true,
autoScroll : true,
draggable : true,
modal : true,
resizable : false,
closeAction : 'close',
buttonAlign : 'right',
layout:'fit',
items : [fm2],
buttons : [{
text : '修 改',
handler : function() {
if (fm2.form.isValid()) {

fm2.getForm().submit({
success : function() {
Ext.MessageBox.alert('信息',
' 菜单修改成功!');
win2.close();
treeReload();
},
failure : function() {
Ext.MessageBox.alert('信息',
' 菜单修改失败!');
}
});
}
}
}, {
text : '重 置',
handler : function() {
fm2.getForm().reset();
}
}, {
text : '关 闭',
handler : function() {
win2.close();
}


}]
});
}
win2.show(Ext.get('sele'));
}


--------------
这是目前的代码,只是显示出父节点的信息。
我想实现的结果是:
显示所选择父节点下所有子结点的信息,只是能循环出来就行,好久没搞了,不记得,那位大神帮忙解决下。 Extjs 循环 each Ext?JS
[解决办法]
先创建fm2,然后使用.eachChild(function(child) { alert(child.text); }) 方法,依次创建textfield,并fm2.add(yourtextfield)添加

读书人网 >JavaScript

热点推荐