2014-11-06 58 views

回答

1

没有任何预制属性复制上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 
} 

而且不要忘记重新画你的树

+0

感谢您的答案!如果我正确地看到这个event.getDropIndex()会给我的节点被放置的地方的索引。我怎样才能找出节点的来源? – Alex 2014-11-06 15:20:16

+0

@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

+0

我想要完成同样的任务...没办法解决这个问题?重写一个方法,...? – Zardo 2016-03-08 15:16:12