我试图在上传文件后重新启用rich:uploadFile中的控件按钮。
我有:
<rich:panel id="fileuploader">
<script type="text/javascript">alert("rendering");</script>
<rich:fileUpload fileUploadListener="#{fileUploadBean.listener}"
maxFilesQuantity="1" id="upload" autoclear="true"
acceptedTypes="jpg, gif, png, bmp" >
<a4j:support event="onuploadcomplete" reRender="fileuploader" />
</rich:fileUpload>
<a4j:commandButton value="reRender" reRender="fileuploader"/>
</rich:panel>
我放了一个脚本以确保面板重新渲染。 我读过你可以reRender uploadFile控件,或刷新整个页面。上传文件后,controlButton被禁用,虽然我使用commandButton进行了重新渲染,但仍然禁用了控制按钮。但是当我做一个完整的刷新页面时,控件就可以了。
我使用富脸3.3.3
任何帮助?
由于
[编辑]
我发现了问题,但尚未解决问题!我有一个包含多行的表,所以我有多个rich:fileUpload's。如果我只显示一行并且它有效。
答案 0 :(得分:1)
我遇到了同样的问题,为了解决这个问题,我重新设计了控件,而不是一个持有它的面板,我不知道这种方法是否有效(但它对我有用):
编辑:改变了我的代码,也许我看不到有什么不同。
<rich:fileUpload id="fuArchivoExcel" maxFilesQuantity="1"
listHeight="60px" listWidth="350px" immediateUpload="false"
fileUploadListener="#{cargaDocumentoRequerido.subeArchivo}"
addControlLabel="Seleccionar archivo" uploadControlLabel="Subir"
clearAllControlLabel="Borrar archivos"
clearControlLabel="Borrar archivo" stopControlLabel="Detener" autoclear="true">
<f:facet name="label">
<h:outputText value="Se han subido {_KB}KB de {KB}KB" />
</f:facet>
<a4j:support event="onuploadcomplete" reRender="fuArchivoExcel,pnlMensajesError"
oncomplete="finCargaArchivo('#{cargaDocumentoRequerido.mensaje.idMensaje}', '#{cargaDocumentoRequerido.mensaje.descMensaje}')" />
</rich:fileUpload>
编辑(基于评论)
在像<rich:fileUpload>
这样的转发器中使用<rich:dataTable>
时,您应该重新呈现转发器组件而不是单个组件。这将解决您的问题。