作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建具有对话框表单功能的添加子按钮。
页面上有树形和模态对话框形式。在树的每个节点上都有创建子按钮。如果单击创建子按钮,将显示模态形式,其中 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/
我是一名优秀的程序员,十分优秀!