【问题标题】:Inplace inside Tree : how to save the modified TreeNode?Inplace inside Tree:如何保存修改后的 TreeNode?
【发布时间】:2014-01-22 15:04:42
【问题描述】:

我正在使用 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。有没有从AjaxBehaviorEventTreeNode 的解决方案?谢谢!

【问题讨论】:

  • 要不要保存#{node.label}的值,就这样?
  • 是的,完全正确。我会更新我的问题。
  • 您是否尝试将节点值传递给您的方法?像这样:#{treeController.onSaveNodeLabel(node.label)} 然后在你的方法中接收它并做你想做的任何事情
  • 你是对的,它有效!谢谢!
  • 不客气!请标记为对其他人有用的答案。

标签: jsf jsf-2 primefaces tree inplace-editing


【解决方案1】:

只需将 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>

在你的 bean 中:

public void onSaveNodeLabel(String nodeLabel) {
    //
}

【讨论】:

  • 其实我做的更像onSaveNodeLabel(node.id, node.label)
  • 不错!您也可以使用onSaveNodeLabel(node) 并在 bean 中获取节点属性 :)
  • 你说得对,这更简单。不过应该注意的是,&lt;p:tree&gt; 中的var="node" 属性不包含对 TreeNode 对象的引用,而是对 TreeNode 中包含的数据的引用(TreeNode.getData() 可以访问)。因此,我将变量重命名为 treeNodeData 而不是 node
猜你喜欢
  • 1970-01-01
  • 2013-09-05
  • 1970-01-01
  • 2019-08-06
  • 2013-12-17
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多