2013-03-26 2 views
0

ссылки: http://www.primefaces.org/showcase/ui/galleria.jsfprimefaces перезагружать GALLERIA

моей страница:

<p:galleria id="merchant-gallery" value="#{testController.imageIds}" var="item" autoPlay="false" > 
    <p:graphicImage width="300" value="#{imageStreamer.image}" > 
     <f:param name="id" value="#{item}" /> 
    </p:graphicImage> 
</p:galleria> 

я пытался ограждающими <p:galleria> в форме и добавил <p:remoteCommand name="updateme" update="@form"/> но после вызова updateme это просто просто сделать Галерею пустым.

* Обновление

testController боб:

public List<Integer> getImageIds() { 
    int aId = (Integer) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("user_id"); 
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("TEST2PU"); 
    EntityManager em = emf.createEntityManager(); 
    TypedQuery<Merchant> tp = em.createQuery("SELECT a FROM Account a WHERE a.id = :id", Account.class); 
    tp.setParameter("id", aId); 
    current = tp.getSingleResult(); 

    Collection rawPhotoCollection = current.getPhotoCollection(); 

    imageIds = new ArrayList<Integer>(rawPhotoCollection); 
    List<Photo> photoList = new ArrayList<Photo>(rawPhotoCollection); 

    for (int i = 0; i < photoList.size(); i++) { 
     int imageId = photoList.get(i).getId(); 
     imageIds.set(i, imageId); 
    } 

    return imageIds; 
} 

imageStreamer боб:

@EJB 
private test.controller.photo.PhotoFacade ejbFacade; 

public StreamedContent getImage() throws IOException { 
    FacesContext context = FacesContext.getCurrentInstance(); 

    if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) { 
     return new DefaultStreamedContent(); 
    } else { 
     Map<String, String> param = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); 
     String id = param.get("id"); 

     Photo image = ejbFacade.find(Integer.valueOf(id)); 
     return new DefaultStreamedContent(new ByteArrayInputStream(image.getImage())); 
    } 
} 
+0

Чего вы хотите достичь? – roel

+0

У меня есть функция ' ', после загрузки каждого изображения я хочу перезагрузить галерею, не обновляя страницу. – galao

+0

Можете ли вы опубликовать некоторый код бобов? вы уверены, что изображения есть, а .imageIds не пуст после загрузки? – roel

ответ

1

я переработал свой пример и имеют один и тот же вопрос. Это не связано с вашей загрузкой или удаленной записью. Я думаю, что это ошибка в сетях. См. http://code.google.com/p/primefaces/issues/detail?id=4840 по аналогичной проблеме. Когда я делаю команду

PrimeFaces.cw('Galleria','widget_companydetail_merchant-gallery',{id:'companydetail:merchant-gallery',transitionInterval:0,panelWidth:640,panelHeight:480,custom:false},'galleria'); 

в Firebug консоли, Галерея появляется снова. Итак, при смене remotecommand и добавлении javascript в oncomplete он работает.

<p:remoteCommand name="updateme" update="@form" oncomplete="PrimeFaces.cw('Galleria','widget_companydetail_merchant-gallery',{id:'companydetail:merchant-gallery',transitionInterval:0,panelWidth:640,panelHeight:480,custom:false},'galleria');"/> 
+0

привет, им смутило, что 'widget_companydetail_merchant-gallery' и companydetail: галерея торговцев, является ли название' companydetail' формы? – galao

+0

О, я понял! Вау! благодаря! : D – galao

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