2012-07-12 57 views
0

我試圖在上傳文件後重新啓用rich:uploadFile中的控件按鈕。啓用豐富的控制按鈕: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

任何幫助嗎?

感謝

[編輯]

我發現了這個問題,但沒有解決呢!我有一個表有多行,所以我有多個豐富的:fileUpload的。如果我只顯示一行並且它有效。

回答

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> 

EDIT(總部設在評論)

當您使用<rich:fileUpload><rich:dataTable>中繼器裏面,您應該重新描繪的中繼器部件,而不是單個組件。這將解決您的問題。

+0

不幸的是,它不適用於我:(。我reRender的控制,但它有相同的結果 – OscarSan 2012-07-12 20:08:31

+0

@OscarSan我已經更新我的答案使用我自己的代碼也許它可以幫助你,如果不是,也許我可以傳遞給你的是jsp和bean的源代碼 – 2012-07-12 20:21:05

+0

謝謝。我擁有相同的屬性(幾乎與西班牙語標籤xD相同),但它不起作用 – OscarSan 2012-07-12 20:36:31