PrimeFaces对话框验证错误

时间:2013-05-06 08:40:59

标签: jsf primefaces

我想要做的是像Primefaces展示的基本行选择示例(http://www.primefaces.org/showcase/ui/datatableRowSelectionByColumn.jsf)我想更新我的数据表的行。问题是当我点击更新数据表上的按钮时,会出现带有验证错误的对话框。

第二件事是方法执行次数的顺序。(action-update-onclick-f: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 个答案:

答案 0 :(得分:1)

您似乎忽略了在此处使用<p:commandButton>的主要观点,以及似乎混合了客户端和服务器端事件。

首先在<p:commandButton>。此组件旨在将POST(部分)表单数据设置为当前URL,执行业务作业(侦听器)方法并返回更新的组件/执行导航。您当然可以将JavaScript事件“附加”到所有这些属性。

其次,onclickoncomplete和其他on...属性对应于某些客户端事件。特别是,单击按钮时会触发onclick函数,在AJAX调用后更新DOM时会调用oncomplete函数,即<p:ajax update="...">update="..."中指定的元素} <p:commandButton>的属性。

第三,所有动作监听器(因此,actionListener属性,<f:actionListener>标签,<f:setPropertyActionListener>标签)将按照标签中指定的顺序执行,请参阅{{3更详细的说明。最后一个要执行的是action方法,然后发送回来。