从javascript更新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>

。我想要达到的目标:

<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>

你认为这是可行的吗?或者你认为已经有类似的解决方案了吗?谢谢。

听起来你想要这样的东西…只需确保存储要编辑的实例的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>

最新更新