Primefaces Inline DataTable Удалить функциональность - PullRequest
1 голос
/ 21 июня 2011

Я использую dfaceatable встроенного редактирования простых лиц. Он состоит из простых символов RowEditor и CommandButton для удаления записи. Моя проблема в том, что когда я удаляю любую запись из базы данных, строка успешно удаляется, и удаленная запись отображается, когда я нажимаю на кнопку редактирования для редактирования следующей записи. Эта проблема редактирования продолжается для всех записей. Она показывает текущее значение в h: outputText и старое значение в h: inputText, которое появляется, когда мы нажимаем на кнопку редактирования. Может ли кто-нибудь помочь мне в этом? Спасибо вам всем.

1 Ответ

5 голосов
/ 21 июня 2011

В компоненте <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();
}
...