【问题标题】:Primefaces 3.4: Dialog shows validation message when it opens the first timePrimefaces 3.4:对话框第一次打开时显示验证消息
【发布时间】:2012-09-20 04:58:19
【问题描述】:

我对 primefaces 对话框有一些问题。我有一个上下文菜单。当我单击上下文菜单时,它会显示一个对话框。此对话框包含一个带有所需输入文本的面板。显示对话框时,面板中会显示验证错误,因为输入文本为空。这个想法是仅当用户单击对话框的命令按钮时才显示验证错误。然后,当对话框打开时,它必须被清空。这意味着,没有验证错误,输入文本中也没有任何内容。似乎上下文菜单中的属性更新有问题。一方面,当用户第二次显示对话框时需要清空输入文本,但第一次显示对话框时也会显示验证错误。

<p:contextMenu for="folderTree">  
    <p:menuitem value="New Folder" update="addFolderPanel" oncomplete="addFolderDialog.show()" actionListener="#{folderManagedBean.initDialog}" icon="ui-icon-plus"/>
</p:contextMenu> 


<p:dialog header="New Folder" widgetVar="addFolderDialog" modal="true" resizable="false"  
                      showEffect="clip" hideEffect="fold">  
    <p:outputPanel id="addFolderPanel">  
        <p:message id="defaultMessage" for="txAddFolder"/>  
        <h:panelGrid columns="2" cellpadding="4">  
             <h:outputText for="txAddFolder" value="Folder Name: *" />  
             <p:inputText id="txAddFolder" value="#{folderManagedBean.newFolderName}" required="true" requiredMessage="The field folder name is required."/> 
             <p:commandButton icon="ui-icon-check" value="OK" update="folderTree" oncomplete="handleDialogClose(xhr, status, args)" actionListener="#{folderManagedBean.addFolder}"/>
        </h:panelGrid>  
    </p:outputPanel>
</p:dialog> 

托管 bean 的代码:

public void initDialog() {
    this.newFolderName = "";
    RequestContext.getCurrentInstance().reset("form:addFolderPanel");  
}

基本上,我想知道为什么对话框第一次打开时显示验证错误以及如何解决这个问题。

任何帮助将不胜感激。

【问题讨论】:

    标签: jakarta-ee dialog primefaces


    【解决方案1】:

    不,不适合我。 我只在命令按钮上使用下面的代码

    public void addCountry(){

    RequestContext.getCurrentInstance().reset("menuForm:add_Country_Dlg_Panel");
    RequestContext.getCurrentInstance().execute("add_Country_Dlg.show();");
    

    }

    【讨论】:

      【解决方案2】:

      最后,我找到了自己问题的答案。

      需要从上下文菜单中删除update 属性并将其添加到命令按钮的update 属性中。 像这样,当用户打开对话框时,没有更新,因此没有验证错误。然后,当他单击按钮保存更改时,有两种情况:

      1. 输入文本正确填写,对话框正常关闭
      2. 输入文本为空。对话框保持打开状态并显示验证错误。

      希望对你有帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多