我正在尝试实施以下内容:
我有2个树状面板,启用了拖放功能。我可以将一些项目从第一棵树拖到第二棵树。第一个树是组件目录,第二个是产品构造函数。在某些情况下,当我将节点放入构造函数时,我需要将子节点附加到已删除的节点。所以当我放弃时,我需要同时添加2个节点:被删除的节点和我在代码中添加的第二个节点。
我决定在drop事件处理程序中添加该额外节点,但问题是我不明白如何找到最新删除的节点。
有什么想法吗?
答案 0 :(得分:0)
您可以使用drop
课程提供的Ext.tree.plugin.TreeViewDragDrop
事件。该类基本上为树的视图(TreeView)提供拖放功能。因此,您需要将drop事件添加到TreeView对象,并在触发此事件时添加子节点或其他操作。
要配置TreeView,您可以使用树面板类提供的viewConfig
参数。在头上,你可能有
编码这样的代码:
viewConfig: {
plugins: {ptype: 'treeviewdragdrop'},
listeners: {
drop: function(node,data,model,dropPosition,opts) {
// Add child nodes & other modification codes here...
}
}
}
有关如何获取所需数据的更多详细信息,请参阅drop method in docs。
答案 1 :(得分:0)
我设法使用两个事件itemadd
和drop
以下是一个示例,希望它对某些人有用:
onComponentAdd: function (records) {
var record = records[0];
this.lastAddedRecord = record;
},
onComponentDrop: function (element, data, dropNode) {
var record = this.lastAddedRecord;
var data = record.get('Data');
if (!Ext.isEmpty(data)) {
var scheme = data.scheme;
Ext.each(scheme, function (item) {
if (item.type == 'componentlist') {
record.appendChild({
text: item.name,
loaded: true,
expanded: true,
allowDrop: true
});
}
});
}
}