Функциональность Удалить

Я использую 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();
}