如何使用Primefaces CommandButton更新表(不是数据表)

时间:2014-10-15 11:58:35

标签: html jsf primefaces

<h:form id="tableForm">
   <table id="myTable">
     <tr>
       <th>HeaderOne</th>  
       <th>HeaderTwo</th>
       <th>HeaderThree</th>
     </tr>
     <ui:repeat value="#{myBean.List}" var="row">
       <tr class="myRows">
         <td><input type="text" value="#{row.fieldOne} required="required" /></td>
         <td><input type="text" value="#{row.fieldTwo}  /></td>
         <td><input type="text" value="#{row.fieldThree} /></td>
       </tr>
     </ui:repeat>
   </table>
   <p:commandButton id="myButton" value="Load" action="#{myBean.load}" process="@this" update="myTable" />
</h:form>

我想从我的bean中将一些东西加载到我的inputFields中,但是当我按下save时需要一个字段。所以我必须将流程设置为@this。

之后我希望我的表格更新。但我不行。

我做错了什么?

2 个答案:

答案 0 :(得分:5)

尝试更新表单

<p:commandButton ... action="#{myBean.load}" process="@this" update="tableForm" />

因为表不是jsf元素而是“纯”html,所以你不能在jsf元素中使用它的id

答案 1 :(得分:3)

Schäbo答案是正确的(+1),但Primefaces还提供了p:fragment组件,因此您只能更新您想要的区域:

<p:fragment id="myFragmentReloaded">
  <table>
    ...
  </table>
</p:fragment>

然后

<p:commandButton ... action="#{myBean.load}" process="@this" update="myFragmentReloaded" />