启用rich:uploadFile中的控制按钮

时间:2012-07-12 16:52:31

标签: jsf richfaces

我试图在上传文件后重新启用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。如果我只显示一行并且它有效。

1 个答案:

答案 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>时,您应该重新呈现转发器组件而不是单个组件。这将解决您的问题。