日期:2014-05-16  浏览次数:20450 次

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 :&nbs