【发布时间】:2014-12-06 05:26:53
【问题描述】:
我有一个显示在对话框中的上传器。因此,当我成功上传文件时;我希望我的拨号关闭,如果上传后出现错误,我不想关闭我的对话框。所以我的上传工作但是当它关闭我的对话框时,我从firebur收到消息:ReferenceError:args未定义。 这是我的对话框的代码:
<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>
这是我使用 fileupload 方法关闭对话框的代码: 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, status, args),但它不起作用。我知道 xhr 没有定义。 有谁知道为什么我可以在完成上传后关闭对话框? 提前致谢。
【问题讨论】:
标签: javascript jquery ajax jsf-2 primefaces