我使用此fileUpload从Excel工作表上传文档。
<h:form id="leForm2" enctype="multipart/form-data">
<p:fileUpload
mode="advanced" showButtons="FALSE"
label="{messages['upload.xls']}"
fileUploadListener="#{bean.handleFileUpload}"
id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true"
allowTypes="/(\.|\/)(xls|xlsx)$/"/>
<p:growl id="messages3" escape="true" sticky="false"
lifetime="800" showDetail="false" />
</h:form>
这可以按预期工作。我的问题是我需要在上传过程中显示一个p:Dialog,我无法找到这样做的方法。
这是我的对话:
<p:dialog widgetVar="statusDialog" modal="true" draggable="false" closable="false" resizable="false">
<p:graphicImage value="/images/ajaxloadingbar.gif" />
</p:dialog>
我不知道怎么称呼它或在哪里:(。有什么建议吗?
答案 0 :(得分:1)
<h:form id="leForm2" enctype="multipart/form-data">
<p:fileUpload
mode="advanced" showButtons="FALSE"
label="{messages['upload.xls']}"
fileUploadListener="#{bean.handleFileUpload}"
id="uploadCargaMasiva" update="messages3, :tabs:formTab2:documentoList" auto="true" onstart="statusDialog.show()"
allowTypes="/(\.|\/)(xls|xlsx)$/"/>
<p:growl id="messages3" escape="true" sticky="false"
lifetime="800" showDetail="false" />
</h:form>
在bean.java中,我在handleFileUpload:
的末尾添加了这一行 RequestContext.getCurrentInstance().execute("widgetHide()");
widgetHide是一个JS函数:
<script type="text/javascript">
function widgetHide()
{
statusDialog.hide();
}
</script>
正如所建议的那样,启动和oncomplete shoud可以解决这个问题,但由于某种原因,oncomplete不起作用。所以我必须这样做才能让它发挥作用。