gpt4 book ai didi

jsf - 如何在 primefaces 中更新客户端组件?

转载 作者:行者123 更新时间:2023-12-04 13:48:37 25 4
gpt4 key购买 nike

我想创建具有对话框表单功能的添加子按钮。

页面上有树形和模态对话框形式。在树的每个节点上都有创建子按钮。如果单击创建子按钮,将显示模态形式,其中 parentId 将设置为单击按钮的节点的 ID

树:

 <h:form id="TestGroupListForm">    
<p:tree value="#{testTreeController.root}" var="node" dynamic="true" cache="false"
selectionMode="single" selection="#{treeBean.selectedNode}" id="tree">

<p:treeNode>
<h:outputText value="#{node.getName()}" /> <p:commandButton id="createButton#{node.getIdTestGroup()}" icon="ui-icon-plus" value="#{bundle.Create}" update="tree" oncomplete="TestGroupCreateDialog.show()"/>
</p:treeNode>
</p:tree>
</h:form>

对话框:

        <h:form id="TestGroupCreateForm">

<h:panelGroup id="display">
<p:panelGrid columns="2" >


<p:outputLabel value="#{bundle.CreateTestGroupLabel_name}" for="name" />
<p:inputText id="name" value="#{testGroupController.selected.name}" title="#{bundle.CreateTestGroupTitle_name}" />
<h:inputHidden id="parentId" value="#{testGroupController.selected.parentId}" />

</p:panelGrid>
<p:commandButton actionListener="#{testGroupController.saveNew}" value="#{bundle.Save}" update="display,:TestGroupListForm:tree,:growl" oncomplete="handleSubmit(xhr,status,args,TestGroupCreateDialog);"/>
<p:commandButton value="#{bundle.Cancel}" onclick="TestGroupCreateDialog.hide()"/>
</h:panelGroup>

</h:form>

</p:dialog>

我想要那个点击

<p:commandButton id="createButton#{node.getIdTestGroup()}" icon="ui-icon-plus"   value="#{bundle.Create}"  update="tree" oncomplete="TestGroupCreateDialog.show()"/>

将设置值:

<h:inputHidden  id="parentId" value="#{testGroupController.selected.parentId}" />

更新

我必须使用 Action 监听器 testGroupController.nodeListener 来设置新项目的 parentId。

    <p:commandButton process="@this" id="createButton" actionListener="#{testGroupController.nodeListener}" icon="ui-icon-plus"   value="#{bundle.CreateGroup}"  update=":TestGroupCreateForm" oncomplete="TestGroupCreateDialog.show()">
<f:attribute name="rawParentId" value="#{node.getIdTestGroup()}" />
</p:commandButton>

最佳答案

您可以将 parentId 添加到现有的 update= 属性,如下所示:

update="tree parentId"

这将呈现 parentId 并将其值设置为 testGroupController.selected.parentId

编辑

您也可以处理从 UI 到 been 的任何值,方法是:

process="myInputId"

示例

<h:form>
<h:inputText id="input"
value="#{bean.value}" />
<h:outputText id="output"
value="#{bean.value}" />
<p:commandButton process="input"
update="output"
value="Submit" />

单击您的按钮后,id="input" 的值将设置在 bean.value 中(按照 process="input"< 的顺序)。接下来,您的 id="output" 将使用 bean.value 呈现(或更新)(按照 update="output" 的顺序)。

关于jsf - 如何在 primefaces 中更新客户端组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16347676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com