2013-03-21 2 views
0

У меня есть два Portlets: первая содержит: Datatable A и вторая: Datatable B. Два портлета показаны на одной странице. Я хочу обновить datatable A после того, как я нажму кнопку управления в datatable B.ICEfaces 1.8 Предоставление в различных портлетов (LifeRay)

метод вызывается с помощью командной кнопки содержит этот код:

OnDemandRenderer onDemandRenderer = getRenderManager().getOnDemandRenderer("RENDER_GROUP"); 
onDemandRenderer.requestRender(); 

Но это не работает. Может ли кто-нибудь мне помочь? Некоторые подсказки? Заранее благодарим за помощь!

ответ

0

Я решил проблему, используя статические переменные. Datatable А использует объект DataModel, который заполняется таким образом в управляемом компоненте:

dataModel=new ListDataModel(globalDD.getDetailsList()); 

где globalDD в управляемом компоненте:

private GlobalDocumentDetails globalDD; 
public GlobalDocumentDetails getGlobalDD() { 
    return SessionBeanUtility.getGlobalDD(); 
} 
public void setGlobalDD(GlobalDocumentDetails globalDD) { 
    this.globalDD = globalDD; 
} 

И SessionBeanUtility.getGlobalDD() является

public static GlobalDocumentDetails getGlobalDD(){ 
    if (FacesUtil.getPortletSession().getAttribute(GLOBAL_DD_BEAN_KA, PortletSession.APPLICATION_SCOPE) == null) 
    { 
     new GlobalDocumentDetails(); 
     FacesUtil.getPortletSession().setAttribute(GLOBAL_DD_BEAN_KA, new GlobalDocumentDetails(), PortletSession.APPLICATION_SCOPE); 
    } 
    return (GlobalDocumentDetails)FacesUtil.getPortletSession().getAttribute(GLOBAL_DD_BEAN_KA, PortletSession.APPLICATION_SCOPE); 
} 

В состав данных B входят элементы корзины покупок, и тележка является статическим объектом. Я использую код, который я написал в вопросе в методах actionListeners двух данных для обновления обоих.

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