0
我是一個出現在對話框中的上傳器。所以,當我上傳我的文件成功;我希望我的dialgo關閉,如果上傳後出現錯誤,我不想關閉對話框。所以,我的上傳工作,但是當我要關閉我的對話框的時候,我收到了來自firebur的消息:ReferenceError:args沒有被定義。 這裏是我的對話框代碼:爲什麼當我在primefaces中使用fileupload時,我可以做ajax調用?
<p:dialog maximizable="true"
minHeight="400"
minWidth="400"
id="dialogCarga"
header="Cargar gestores"
widgetVar="gestorCargarDialog"
resizable="false"
modal="true">
<p:ajax event="close"
listener="#{gestorMB.handleClose}"
update="agregarGestor"/>
<h:form id="cargarGestor">
<p:growl id="growl2"
showDetail="false" />
<table>
<tr>
<td align="left">
<h:outputText id="layoutUpd"
value="Subir archivo:" />
</td>
<td align="left">
<p:fileUpload invalidSizeMessage="El archivo tiene un tamaño superior al válido"
label="Escoger" cancelLabel="Cancelar"
uploadLabel="Cargar archivo"
fileUploadListener="#{gestorMB.handleFileUpload}"
id="SigUPD"
oncomplete="handleCargarGestRequest(args)"
invalidFileMessage="Tipo de archivo inválido, solo se aceptan archivos con extensión csv." process="@this"
allowTypes="/(\.|\/)(csv)$/" sizeLimit="20971520"
update=":gestorForm:, erroresCarga, growl2, SigUPD"
fileLimit="1"
fileLimitMessage="Favor de cargar un archivo a la vez.">
</p:fileUpload>
</td>
</tr>
<tr>
<td align="left">
<p:outputPanel id="layoutGestores">
<a href="#{gestorMB.layoutLinkGestores}"
target="_blank">Descargar formato de carga de gestores.</a>
</p:outputPanel>
* Nota: Todos los campos del archivo son obligatorios menos la extensión.
El archivo debe estar libre de errores para poder cargar los gestores.
</td>
</tr>
</table>
<p:dataTable id="erroresCarga"
value="#{gestorMB.msgError}"
var="element"
paginator="true"
rows="10"
emptyMessage="No existen errores"
paginatorTemplate="{CurrentPageReport}
{FirstPageLink}
{PreviousPageLink}
{PageLinks}
{NextPageLink}
{LastPageLink}
{RowsPerPageDropdown}"
rowsPerPageTemplate="10,20,40" >
<f:facet name="header">
Errores en el archivo #{gestorMB.nombreArchivo}
</f:facet>
<p:column headerText="Error">
#{element}
</p:column>
</p:dataTable>
</h:form>
</p:dialog>
,這裏是我從文件上傳的方法使用,關閉對話框的代碼: RequestContext.getCurrentInstance()addCallbackParam(Constantes.EXITO2,Constantes.TRUE)。
最後,這裏是我的js,我關閉對話框:
function handleCargarGestRequest(args) {
alert("handleCargarGestRequest: " + args.exito);
if (args.exito) {
gestorCargarDialog.hide();
} else {
gestorCargarDialog.show();
}
}
我已經嘗試使用handleCargarGestRequest(XHR,狀態參數),它doesn't工作。我知道xhr沒有定義。 有誰知道爲什麼我可以在完成上傳後關閉對話框? 在此先感謝。