[英]Primefaces tree and how to navigate based on TreeNode leaf entity ID
[英]Inplace inside Tree : how to save the modified TreeNode?
我正在使用Primefaces 4.0,並且具有帶有可編輯節點標簽的<p:tree>
:
<p:tree id="treeSingle" dynamic="true"
value="#{treeController.treeRoot}" var="node"
selectionMode="single" selection="#{treeController.selectedNode}">
<p:treeNode>
<p:inplace editor="true" event="dblclick">
<p:ajax event="save" listener="#{treeController.onSaveNodeLabel}" update="@this" />
<p:inputText value="#{node.label}" />
</p:inplace>
</p:treeNode>
</p:tree>
我想做的是在用戶修改#{node.label}值時保存它。
listener="#{treeController.onSaveNodeLabel}"
調用應保存修改后的TreeNode
標簽的方法。 所以我在我的treeController
類中創建了這個方法:
public void onSaveNodeLabel(AjaxBehaviorEvent event) {
logger.info("onSaveNodeLabel");
Inplace inplace = (Inplace)event.getSource();
UITreeNode uiTreeNode = (UITreeNode) inplace.getParent();
// What next?
}
問題 : AjaxBehaviorEvent
允許我訪問org.primefaces.component.tree.UITreeNode,但不能訪問保存我的數據的org.primefaces.model.TreeNode 。 是否存在從AjaxBehaviorEvent
轉到TreeNode
的解決方案? 謝謝!
只需將node.label作為參數發送給函數:
#{treeController.onSaveNodeLabel(node.label)}
因此,在您的網頁中:
<p:inplace editor="true" event="dblclick">
<p:ajax event="save" listener="#{treeController.onSaveNodeLabel(node.label)}" update="@this" />
<p:inputText value="#{node.label}" />
</p:inplace>
在你的豆子里:
public void onSaveNodeLabel(String nodeLabel) {
//
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.