2014-10-15 5 views
4
<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> 

я хочу, чтобы загрузить некоторые вещи в мое inputFields из моей фасоли, но есть одно поле, которое требуется, когда я нажимаю сохранить. Поэтому я должен установить процесс на @this.Как обновить таблицу (не DataTable) с Primefaces CommandButton

Впоследствии я хочу, чтобы мой стол обновлялся. Но я не работаю.

Что я делаю неправильно?

ответ

5

попробуйте обновить форму вместо

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

, так как таблица не является JSF элементом, а «чистый» HTML, вы не можете использовать его идентификатор в JSF элементов

+0

ничего себе, что было быстро. Он отлично работает! много thx :) – Lumpi47

3

Schäbo ответ правильный (+ 1), но Primefaces также обеспечивает p:fragment компонент, так что вы можете обновить только регион, который вы хотите:

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

, а затем

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

приятно. Работает тоже :) – Lumpi47

+0

Удивительный. Не знал о 'фрагменте' –