//给tree创建一个可修改的容器,即TreeEditor
var treeEditer = new Ext.tree.TreeEditor(
Ext.getCmp('tree-menu'),//将tree组建的实例放入
{
allowBlank: false,//输入的值不可以为空
blankText:'名称不允许为空!'
}
);
//beforestartedit事件是在编辑前的事件,因此可以通过它来判断那些节点可以编辑那些不可以。
// complete为编辑之后的事件,在这里面可以添加很多事件,比如添加一个Ext.Ajax向后台传送修改的值等等。
treeEditer.on("beforestartedit", treeEditerBeforEdit,this);
treeEditer.on("complete",treeEditerComplete,this);
function treeEditerBeforEdit(treeEditer){
var tempNode = treeEditer.editNode;//将要编辑的节点
/*是否只允许编辑叶子节点*/
return true;
/*if(tempNode.isLeaf()){
return true;
}else{
return false;
}*/
}
/*
complete事件带有三个参数分别为
1.Editor this 当前编辑组建即TreeEditor
2.Mixed value 编辑之后的值
3.Mixed startValue 编辑之前的值
*/
function treeEditerComplete(treeEditer,newValue, oldValue){
var selectedNode = westPanel.getSelectionModel().getSelectedNode();//得到选中的节点
var node_id = selectedNode.attributes.id;
var nodeEdited = treeEditer.editNode;//得到编辑之后节点
if(newValue==oldValue){
return false;
}else{
//开始向后台传输数据并有edit_node.php进行处理
Ext.Ajax.request({
url: 'tree/modules/edit_node.php',
method:'post',
params:{new_name:newValue,str_id:node_id},
success: function(response, option) {
var result = response.responseText;
if(result=='ok'){
Ext.example.msg('执行成功', oldValue+' 已经更名为 <font color=blue>'+newValue+'</font>');
person_ds.reload();//grid表格刷新显示
}else{
nodeEdited.setText(oldValue);
Ext.example.msg('执行失败', '名称更改失败');
}
},
failure: function(response, option) {
nodeEdited.setText(oldValue);//如果失败则将改过的节点恢复原状
Ext.Msg.alert('编辑出错',"异步通讯失败,请与管理员联系!");
}
});
}
}
EXT 树节点编辑
最新推荐文章于 2014-10-20 14:00:00 发布