尝试在EXTJS 4中的Tree面板中移动节点。这些节点的位置存储在SQL数据库中。当我移动节点时应该发生的是,这些节点的id应该在数据库中被更改,具体取决于树上的位置。到目前为止,我已经设法只获取父节点的id,而不是实际的节点本身。我不明白为什么会这样。每次移动节点时,它都会返回父节点的id。代码如下:
function buildTree() {
consoleWrite('BUILD THE TREE!!!');
var tree = Ext.create('Ext.tree.Panel', {
title : '',
border : false,
height : SYSTEM.panelHeight,
viewConfig : {
listeners : {
},
enableDD : true,
plugins : {
ptype : 'treeviewdragdrop'
}
},
collapsible : false,
useArrows : true,
rootVisible : false,
store : TREEst,
multiSelect : false,
singleExpand : true,
id : 'PAGETREE',
listeners : {
afterRender : function() {
MASK.tree.hide();
},
itemmove : {
fn : function(v, node, oldParent, newParent, index) {
var nodeID = node.data.id;
alert(nodeID);
}
}
此nodeID正在打印父节点的id,因为它存储在数据库中,而不是实际节点本身。如果有人能为我提供如何进行的指导,那将是非常好的。提前谢谢。
答案 0 :(得分:1)
我不认为你的itemmove params签名是正确的。 4.1的API文档说:
itemmove( Ext.data.NodeInterface this, Ext.data.NodeInterface oldParent, Ext.data.NodeInterface newParent, Number index, Object eOpts )
所以你的节点实际上是指oldParent。