2013-05-06 3 views
0

Что я хочу сделать, это пример выбора базовой строки в витрине Primefaces (http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf) Я хочу обновить строку моего datatable. Проблема в том, что когда я нажимаю кнопку «Обновить» в datatable, появляется диалоговое окно с ошибками проверки.Ошибки проверки диалогового окна PrimeFaces

Вторая вещь это то, что порядок времени выполнения метода (действия обновление-OnClick-е: setPropertyActionListener).

<p:commandButton id="updateButtonId" 
            action="#{myController.showCompanyEditPanel}" 
            update=":tabView:companyForm:companyEditPanel" 
            onclick="companyDialog.show()"           
            icon="ui-icon-pencil" title="update"> 
    <f:setPropertyActionListener value="#{company}" target="#{myController.selectedCompany}" /> 
</p:commandButton> 


<p:dialog id="editCompanyDialogId" header="CompanyEdit" widgetVar="companyDialog" resizable="false"> 
    <p:panel id="companyEditPanel" > 
    //some stuff here 
    </p:panel> 
</p:dialog> 

ответ

1

Вы, кажется, отсутствует главный пункт с помощью <p:commandButton> здесь, а также как будто они смешивают клиентские и серверные события.

Первый на <p:commandButton>. Этот компонент предназначен для POST (частичных) данных формы для текущего URL-адреса, выполнения бизнес-операции в действии (слушателя) и возврата обновленных компонентов/выполнения навигации. Вы можете, конечно, «прикрепить» события JavaScript ко всем этим атрибутам.

Во-вторых, onclick, oncomplete и другие атрибуты on... соответствуют некоторым событиям на стороне клиента. В частности, функция onclick запускается при нажатии кнопки, функция oncomplete вызывается, когда DOM обновляется после вызова AJAX, то есть элементов, указанных в <p:ajax update="...">, или просто в update="..." атрибут <p:commandButton>.

В-третьих, все слушатели действий (таким образом, actionListener атрибут, <f:actionListener> тег, тег <f:setPropertyActionListener>) будет выполняться прямо в порядке, они указаны в теге см this answer для дополнительной проработки. Последний, который должен быть выполнен, - это метод action, после которого ответ отправляется обратно.

Смежные вопросы