2013-05-10 27 views
0

我可以更新圖片(存儲在數據庫中)並以更大的尺寸查看它們。這工作正常。但現在,我想刪除它們。這幾乎可以工作。幾乎意思是,圖片被刪除,但旋轉木馬沒有正確刷新。這裏是我的代碼:在旋轉木馬中刪除圖片+更新

<p:tab title="#{vms_uimsgs['vehicle.tab.images']}"> 
    <h:form id="pictures" enctype="multipart/form-data"> 
     <p:fileUpload fileUploadListener="#{vmsVehicleActionBean.handleFileUpload}" mode="advanced" update="vehiclePictureCarousel" sizeLimit="10000000" allowTypes="/(\.|\/)(gif|jpe?g|png)$/" /> 
     <p:carousel id="vehiclePictureCarousel" var="imageId" value="#{vmsVehicleActionBean.imageIds}" itemStyleClass="vehiclePictureItem" effect="fade"> 
     <f:facet name="header" value="#{vms_uimsgs['vehicle.tab.images']}"/> 
     <p:panelGrid columns="1" style="width:100%" cellpadding="5"> 
     <p:graphicImage value="#{graphicImageStore.streamedImageById}" rendered="#{graphicImageStore.hasImage(imageId)}"> 
      <f:param name="id" id="id" value="#{imageId}" /> 
     </p:graphicImage> 
     <p:commandLink id="deleteImage" update="vehiclePictureCarousel" oncomplete="#{vmsVehicleActionBean.deleteImage()}" title="Delete Picture"> 
      <h:outputText styleClass="ui-icon ui-icon-close" style="margin:0 auto;" /> 
      <f:setPropertyActionListener value="#{imageId}" target="#{vmsVehicleActionBean.selectedImageId}" /> 
     </p:commandLink>      
     </p:panelGrid> 
     </p:carousel> 
     </h:form> 
    </p:tab> 

或者問不同,爲什麼我的旋轉木馬正確刷新時我添加了圖片與我的文件上傳,而不是當我刪除一個與轉盤內commandlink?

當然,當重新加載整個頁面時,一切都是正確的。但我不想那樣。

回答

1

問題來自oncomplete="#{vmsVehicleActionBean.deleteImage()}"oncomplete是調用JavaScript方法時,AJAX已經完成了一個屬性,所以你應該使用: 的facelet:

actionListener="#{vmsVehicleActionBean.deleteImage(imageId)}" 

豆:

public void deleteImage(String imageId){ 
//delete here 
} 
+0

謝謝!這是解決方案。 – jobe 2013-05-10 08:18:19

+0

歡迎您:) – 2013-05-10 08:18:53