3
拖动它后,是否可以不从原始PrimeFacesTree中删除节点?默认行为是删除了在另一个地方拖放的节点。我可以防止发生这种情况吗?Primefaces Tree:在拖放后不要删除节点
我使用Primefaces 4.0
拖动它后,是否可以不从原始PrimeFacesTree中删除节点?默认行为是删除了在另一个地方拖放的节点。我可以防止发生这种情况吗?Primefaces Tree:在拖放后不要删除节点
我使用Primefaces 4.0
没有任何预制属性复制上dropEvent节点。
的解决方案是将监听器添加到您的<p:tree>
元素:在你的backbean方法复制它
<p:tree listener="#{managingBean.onDragDrop}" />
然后,你需要在初始位置重新创建节点:
public void onDragDrop(TreeDragDropEvent event) {
TreeNode dragNode = event.getDragNode();
TreeNode dropNode = event.getDropNode();
int dropIndex = event.getDropIndex();
// Logic to repopulate initial Tree element
}
而且不要忘记重新画你的树
感谢您的答案!如果我正确地看到这个event.getDropIndex()会给我的节点被放置的地方的索引。我怎样才能找出节点的来源? – Alex 2014-11-06 15:20:16
@Alex不幸的是,没有任何方法获得初始索引。请参阅文档:http://www.primefaces.org/docs/api/4.0/org/primefaces/event/TreeDragDropEvent.html。你可以看到这个解决方案找到树中的节点索引:http://stackoverflow.com/questions/26252529/get-the-index-of-the-node-in-a-primefaces-tree – Thrax 2014-11-06 15:26:12
我想要完成同样的任务...没办法解决这个问题?重写一个方法,...? – Zardo 2016-03-08 15:16:12