Jquery JSF2.2命令按钮关闭对话框

Jquery JSF2.2命令按钮关闭对话框,jquery,file-upload,jsf-2,primefaces,commandbutton,Jquery,File Upload,Jsf 2,Primefaces,Commandbutton,我用的是Primeface 5.0,Glassfish 4。在这个对话框中,我显示了一个可以附加到数据集的文档列表。文件上载正在工作,并启动上载按钮的操作例程以存储上载的文件。但命令按钮的操作例程完成后,数据列表将刷新,对话框将关闭,但不应关闭。“删除”按钮可以正常工作并刷新数据列表 DlgVArEntryEdit.xhtml: 我不知道为什么上传按钮关闭对话框而删除按钮不关闭。这里出了什么问题?您的文件上载按钮的ajax=false。您可以将其更改为ajax请求,但请记住,我尝试了它们,但没有

我用的是Primeface 5.0,Glassfish 4。在这个对话框中,我显示了一个可以附加到数据集的文档列表。文件上载正在工作,并启动上载按钮的操作例程以存储上载的文件。但命令按钮的操作例程完成后,数据列表将刷新,对话框将关闭,但不应关闭。“删除”按钮可以正常工作并刷新数据列表

DlgVArEntryEdit.xhtml:


我不知道为什么上传按钮关闭对话框而删除按钮不关闭。这里出了什么问题?

您的文件上载按钮的ajax=false。您可以将其更改为ajax请求,但请记住,我尝试了它们,但没有成功。我会在一个页面,对话框和文件上传将不适合在一起。thx Nik.ajax=false在使用fileUpload时是必需的。但如果不使用ajax,整个页面将在请求后重新加载,这意味着对话框将关闭。就像你已经意识到fileUpload plus对话框是一个糟糕的组合。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:p="http://primefaces.org/ui"
  xmlns:ui="http://java.sun.com/jsf/facelets">
<ui:composition>
    <p:dialog id="VArEntryViewDlg" 
              widgetVar="VArEntryViewDialog" 
              resizable="false"
              showEffect="fade" 
              hideEffect="explode"
              modal="true"
              header="Buchung">
        <h:form id="VArEntryViewDlgFrm" enctype="multipart/form-data">
            <p:panelGrid  rendered="#{arEntryController.selected != null}">

                <p:row>
                    <p:column><p:outputLabel value="Buchungs-ID:"/></p:column>
                    <p:column><p:outputLabel value="#{arEntryController.selected.arEntryId}" /></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Buchnungs-No:"/></p:column>
                    <p:column><p:outputLabel value="#{arEntryController.selected.entryNo}" /></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Storniert :"/></p:column>
                    <p:column><p:selectBooleanCheckbox value="#{arEntryController.selected.isCancelled}" /></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Buchnugsreferenz"/></p:column>
                    <p:column><p:outputLabel value="#{arEntryController.selected.receiptNo} / #{arEntryController.selected.receiptType}"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="#{bundle.entryCode}"/></p:column>
                    <p:column><p:outputLabel value="#{arEntryController.selected.entryCodeName}"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Datum"/></p:column>
                    <p:column><p:calendar value="#{arEntryController.selected.entryDate}" size="10" pattern="dd.MM.yyyy" showOn="button"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="#{bundle.entryText}"/></p:column>
                    <p:column><p:inputText value="#{arEntryController.selected.entryData}" size="100"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="#{bundle.Comment}"/></p:column>
                    <p:column><p:inputTextarea rows="5" cols="100" value="#{arEntryController.selected.entryComment}"/></p:column>
                </p:row>
                <p:row>
                    <p:column colspan="2">
                        <h:panelGroup id="uploadDataListId">
                            <p:dataTable id="UploadDatalist" 
                                         value="#{arEntryController.documents}" 
                                         var="item"
                                         selection="#{arEntryController.documentSelected}"
                                         rowKey="#{item.documentId}"
                                         style="width: 400px"
                                         >
                                <p:column headerText="#" style="width: 5%; text-align: center">
                                    <p:outputLabel value="#{item.documentId}"/>
                                </p:column>
                                <p:column headerText="#{bundle.DocumentName}" style="text-align: left">
                                    <p:outputLabel value="#{item.documentName}"/>
                                </p:column>
                                <p:column style="width:7%;text-align: center">
                                    <p:commandButton update=":VArEntryViewDlgFrm:UploadDatalist" 
                                                     action="#{arEntryController.removeDocument}" 
                                                     icon="ui-icon-trash" 
                                                     title="Löschen" 
                                                     process="@this">
                                        <f:setPropertyActionListener value="#{item}" target="#{arEntryController.documentSelected}" />
                                    </p:commandButton>
                                </p:column>
                            </p:dataTable>
                            <p:fileUpload id="fileUploadId" value="#{arEntryController.file}" mode="simple" />
                            <p:commandButton update=":VArEntryViewDlgFrm:uploadDataListId" 
                                             process=":VArEntryViewDlgFrm:fileUploadId"
                                             actionListener="#{arEntryController.upload}"
                                             ajax="false"
                                             value="Upload"/>
                        </h:panelGroup>
                    </p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="geladene #{bundle.DocumentCount}"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Netto"/></p:column>
                    <p:column><p:inputText value="#{arEntryController.selected.amountNet}">
                                <f:convertNumber currencySymbol="€" groupingUsed="true"
                                         maxFractionDigits="2" type="currency" />
                            </p:inputText></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="USt-Code"/></p:column>
                    <p:column><p:inputText value="#{arEntryController.selected.GSTName}"/></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="USt"/></p:column>
                    <p:column><p:inputText value="#{arEntryController.selected.amountGst}">
                                    <f:convertNumber currencySymbol="€" groupingUsed="true"
                                         maxFractionDigits="2" type="currency" />
                                </p:inputText></p:column>
                </p:row>
                <p:row>
                    <p:column><p:outputLabel value="Brutto"/></p:column>
                    <p:column><p:inputText value="#{arEntryController.selected.amountTotal}">
                                <f:convertNumber currencySymbol="€" groupingUsed="true"
                                         maxFractionDigits="2" type="currency" />
                            </p:inputText></p:column>
                </p:row>
            </p:panelGrid>
            <p:commandButton value="#{bundle.Cancel}" 
                             style="float:right;" 
                             process="@this" 
                             actionListener="#{arEntryController.closeDlg}" 
                             update=":formCenter :growl"
                             onclick="PF('VArEntryViewDialog').hide()"/>
            <p:commandButton value="#{bundle.Delete}" 
                             style="float:right;" 
                             process="@this" 
                             actionListener="#{arEntryController.remove}" 
                             update=":formCenter :growl"
                             oncomplete="PF('VArEntryViewDialog').hide()"/>
            <p:commandButton value="#{bundle.Change}" 
                             style="float:right;" 
                             actionListener="#{arEntryController.updateEntry}" 
                             update=":formCenter :growl"
                             oncomplete="PF('VArEntryViewDialog').hide()"/>
        </h:form>
    </p:dialog>
    </ui:composition>
</html>