treepanel 当前节点,以下3种方法都可以
currentNode = record;
currentNode = this.getSelectionModel().getLastSelected();
currentNode = treOrganization.getStore().getNodeById(record.data.id);
var currentNodeId = 1; //组织树当前节点id;
var parentNodeId = 0; //组织树父节点id; 0
//组织树store
var treeStoreOrganization = Ext.create('Ext.data.TreeStore', {
nodeParam: 'parentId', //默认的是把id作为node传到后台
autoLoad: true, //此属性为false时,root的expanded也得为false
proxy: {
type: 'ajax',
url: 'getListByParentId.json',
extraParams : {
expandedLevels : 1 //预先在后台展开几级,暂时没用
},
reader: {
type: 'json',
root: 'extTreeVoList' //josn中的根节点
}
},
root: {
text: '根节点',
id: 0,
expanded: true, //为true就会自动加载
}
// ,
// sorters: [{
// property: 'text',
// direction: 'ASC'
// }]
});
treeStoreOrganization.on('load',function(store,records,success,options) {
if(records.data.id == 0){ //records看似像加载来的子节点,但他是父节点
parentNodeId = 0;
if(treOrganization.getRootNode().childNodes.length>0){
var node = treOrganization.getRootNode().childNodes[0]; //根下的第一个节点
treOrganization.getSelectionModel().select(node);
currentNodeId = node.data['id'];
node.expand();
//idPath = node.getPath("id"); // /0/1
//node.getPath('text')
}
}
});
//组织树
var treOrganization = Ext.create('Ext.tree.Panel', {
id: 'treOrganization',
//title: '组织机构管理',
//region:'west',
store: treeStoreOrganization,
rootVisible:false,
useArrows: false,
border: false,
listeners : {
'itemclick' : function(view,record,item,index,e,eOpts){
currentNodeId = record.data.id;
parentNodeId = record.parentNode.data.id;
//currentNodePath = record.getPath();
// currentNode = record;
// currentNode = this.getSelectionModel().getLastSelected();
// currentNode = treOrganization.getStore().getNodeById(record.data.id);
getPageList();
if(record.data.leaf){
//alert(record.data.id);
//alert(record.data.text);
//alert(record.raw.url); //不扩展也能从raw取
}else{
// if(record.data.expanded){
// view.collapse(record);
// }else{
// view.expand(record);
// }
}
}
}
});
对树进行增删改后,刷新树
/**
* 刷新树 刷新父节点,展开或不展开当前节点,选中当前节点
* @param treePanel
* @param refreshRoot 是否刷新root
* @param currentNodeId 当前节点id
* @param parentNodeId 父节点id
*/
function refreshNode(treePanel, refreshRoot, currentNodeId, parentNodeId){
var currentNode = treePanel.getStore().getNodeById(currentNodeId); //当前节点删除了就不存在了
var parentNode = treePanel.getStore().getNodeById(parentNodeId);
var rootNode = treePanel.getStore().getRootNode();
var path;
if(currentNode){
path = currentNode.getPath('id'); //currentNode.getPath('text')
} else if(parentNode){
path = parentNode.getPath('id');
} else {
path = rootNode.getPath('id');
}
var loadNode;
if(refreshRoot){
loadNode = rootNode;
} else {
loadNode = parentNode;
}
//刷新节点,展开节点,选中节点
treePanel.getStore().load({
node: loadNode,
callback:function(){
if(currentNode && currentNode.data.expanded){
//之前展开的还是展开
treePanel.expandPath(path);
}
treePanel.selectPath(path);
}
});
}