我试图执行以下操作:如何在ExtJs4树中找到最新丢弃的节点
我有2个可以拖放的树形面板。我可以将一些项目从第一棵树拖到第二棵树。第一个树是组件的目录,第二个树是产品构造器。在某些情况下,当我将一个节点拖放到构造函数中时,我需要将子节点追加到被删除的节点。所以实际上,当我放弃的时候,我需要同时添加2个节点:被删除的节点和我在代码中添加的第二个节点。
我决定在drop事件处理程序中添加额外的节点,但问题是我不明白如何找到最新的被删除节点。
任何想法?
我试图执行以下操作:如何在ExtJs4树中找到最新丢弃的节点
我有2个可以拖放的树形面板。我可以将一些项目从第一棵树拖到第二棵树。第一个树是组件的目录,第二个树是产品构造器。在某些情况下,当我将一个节点拖放到构造函数中时,我需要将子节点追加到被删除的节点。所以实际上,当我放弃的时候,我需要同时添加2个节点:被删除的节点和我在代码中添加的第二个节点。
我决定在drop事件处理程序中添加额外的节点,但问题是我不明白如何找到最新的被删除节点。
任何想法?
我设法实现什么,我需要用两个事件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
});
}
});
}
}
您可以使用Ext.tree.plugin.TreeViewDragDrop
类中提供的drop
事件。这个类基本上为树的视图提供拖放功能(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关于如何得到你需要的数据的详细信息。
是的,我知道我应该使用这个插件,但问题是如何找到最新的丢弃节点。我通过阅读文档,但我没有找到答案,你能提出什么建议吗? – 2011-12-21 23:33:57