我想用对话框表单功能创建添加子项按钮。
在页面上有树和模态对话框表单。树的每个节点都将是创建子按钮。如果单击“创建子项”按钮,将显示模态表单,其中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}" />
更新
我必须使用动作侦听器 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>
答案 0 :(得分:1)
您可以将parentId添加到现有的update=
属性中,如下所示:
update="tree parentId"
这将呈现parentId
并将其值设置为testGroupController.selected.parentId
。
修改强>
您可以使用以下方法处理UI中的任何值:
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"
(按{{1}}排序)。