1

Primefacesダイアログに問題があります。コンテキストメニューがあります。コンテキストメニューをクリックすると、ダイアログが表示されます。このダイアログには、必要な入力テキストを含むパネルが含まれています。ダイアログが表示されると、入力テキストが空であるため、検証エラーがパネルに表示されます。アイデアは、ユーザーがダイアログのcommandButtonをクリックしたときにのみ検証エラーを表示することです。次に、ダイアログを開いたときに、ダイアログを空にする必要があります。つまり、検証エラーはなく、入力テキストにも何もありません。コンテキストメニューの属性更新に問題があるようです。一方では、ユーザーがダイアログを2回目に表示するときに入力テキストを空にする必要がありますが、ダイアログを最初に表示するときに検証エラーも表示されます。

<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");  
}

基本的に、ダイアログを最初に開いたときに検証エラーが表示される理由と、この問題を解決する方法を知りたいと思います。

どんな助けでも本当にありがたいです。

4

2 に答える 2

3

私には効かない。コマンドボタンでのみ以下のコードを使用しています

public void addCountry(){

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

}

于 2013-10-02T06:36:03.590 に答える
2

最後に、私は自分の質問に対する答えを見つけました。

コンテキストメニューから属性を削除し、commandButtonupdateの属性に追加する必要があります。updateこのように、ユーザーがダイアログを開いたとき、更新は行われないため、検証エラーは発生しません。次に、ボタンをクリックして変更を保存すると、次の2つのケースがあります。

  1. 入力テキストが正しく入力され、ダイアログが正常に閉じます
  2. 入力テキストは空です。ダイアログは開いたままになり、検証エラーが表示されます。

お役に立てば幸いです。

于 2012-09-21T19:53:49.370 に答える