现在我们在数据表行中放置了几个primefaces对话框。到目前为止,这种方法有效,但我希望将它们移出数据表。
因为对于特定对话框的用户总是只显示一个实例,所以我想在将其弹出给用户之前通过Javascript更新它的值。对于只包含几个组件的简单对话框就是这种情况,并且客户端已经提供了这些信息。
到目前为止的情况。 (它是HTML,而不是JSF,因为我现在没有JSF代码)
<table>
<tr>
<td>
<a onClick="show('dialog');" />
<div id='dialog'> <!-- the dialog -->
<input type="text" name="field" value="value" />
</div>
</td>
</tr>
</table>
e.g。我想要实现的目标:
<table>
<tr>
<td>
<a onClick="updateDialog('dialog',{'field', 'value'}); show('dialog');" />
</td>
</tr>
</table>
<div id='dialog'> <!-- the dialog -->
<input type="text" name="field" value="value" />
</div>
你觉得它可行吗,或者你认为野外已有类似的解决方案吗?感谢。
答案 0 :(得分:0)
听起来你想要这样的东西...只是确保,你存储要编辑的实例的bean在请求中幸存。请务必阅读PrimeFaces文档中的部分处理和部分渲染,您可以免费下载:http://www.primefaces.org/documentation
<h:form id="tableForm">
<p:datatable value="#{carBean.cars}" var="car" ...>
<p:column>
<p:commandButton value="edit" action="#{carBean.edit(car)}" process="@this" update=":editForm" oncomplete="PF('carDialog').show();"/>
</p:column>
...
</p:datatable>
</h:form>
<h:form id="editForm">
<p:dialog widgetVar="carDialog" rendered="#{carBean.carToEdit ne null}">
<p:inputText value="#{carBean.carToEdit.brand" placeholder="brand" ... />
...
</p:dialog>
</h:form>