2013-05-10 2 views
0

I'v Карусель с возможностью обновления изображений (хранится в db) и просматривать их в большем размере. Это прекрасно работает. Но теперь я хотел бы удалить их. И это работает почти. Почти означает, что изображение удаляется, но карусель неправильно обновляется. Вот мой код:Удалить фотографию в карусели + обновить

<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 является атрибутом для вызова метода яваскрипта, когда Ajax закончили, так что вы должны использовать: facelet:

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

боб:

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

Спасибо! Это было решением. – jobe

+0

Добро пожаловать :) –

Смежные вопросы