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>

或者以不同的方式问,为什么当我使用文件上传器添加图片而不是当我在轮播中使用命令链接删除图片时我的轮播正确刷新?

当然,当重新加载整个页面时,一切都是正确的。但我不想那样。

4

1 回答 1

1

问题来自oncomplete="#{vmsVehicleActionBean.deleteImage()}"oncomplete是在ajax完成时调用javascript方法的属性,所以你应该使用:facelet:

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

豆:

public void deleteImage(String imageId){
//delete here
}
于 2013-05-10T06:35:54.543 回答