Я использую directfaces inline editing datatable.which состоит из простых элементов RowEditor и CommandButton для удаления записи. Моя проблема заключается в том, когда я удаляю любую запись из базы данных, строка успешно удалена и удаленная запись показывает, когда Я нажимаю на кнопку редактирования для редактирования следующей записи. Эта проблема редактирования продолжается со всеми записями. Она показывает текущее значение в h: outputText и старое значение в h: inputText, которое появляется, когда мы нажимаем кнопку редактирования. Может ли кто-нибудь помочь мне в этом? Спасибо вам всем.
Функциональность Удалить
Ответ 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();
}