Ответ 1
В модуле <p:dataTable>
есть много ошибок с интерфейсами Primefaces, поэтому я не буду искать их всех.
Я знаю, однако, что на Primefaces 2.2.1 есть открытая ошибка, указывающая, что компоненты в строке <p:dataTable>
не будут правильно обновлять (обновлять) соответствующие значения в dataTable. Эта проблема МОЖЕТ быть исправлена в Primefaces 3.0. Если вас это интересует, вы можете искать известные ошибки здесь.
К счастью, я придумал обходной путь для этого. Вам необходимо выполнить асинхронную операцию из компонента OUTSIDE <p:dataTable>
и убедиться, что компонент устанавливает идентификатор dataTable в свой атрибут update
.
<h:form id="form1">
<p:commandButton widgetVar="updateButton" update="form1:table1" ... />
<p:dataTable id="table1" ...>
<p:column ...>
<p:commandButton id="deleteButton" action="#{managedBean.doDelete}" oncomplete="javascriptFunction();" ... />
</p:column>
</p:dataTable>
</h:form>
И в javascript:
function javascriptFunction() {
updateButton.jq.click();
}