2013-06-04 34 views
0

我Managed Bean的一個會議,我有我顯示的數據表,當我點擊鏈接我更改了託管bean的名單,但在JSF頁面表沒有改變列表:如何使用會話bean刷新JSF中的數據表?

<p:commandButton id="someId" value="Button" action="#{gestionduplanning.exec2()}"> 
    <f:ajax render="koka"/> 
</p:commandButton> 

<p:dataTable id="koka" var="op" value="#{gestionduplanning.listop}" style="width: 700px;float: left;"> 
    <p:column headerText ="operateur" style="width:50px;" >  
     <h:outputText value="#{op.operateur.matricule}"/> 
    </p:column> 
</p:dataTable> 

如何我可以更新JSF中的表,我需要保留我的託管bean作爲會話bean嗎?

回答

1

刪除<f:ajax render="koka"/>並添加update="koka"<p:commandButton

<p:commandButton update="koka" id="someId" value="Button" action="#{gestionduplanning.exec2()}"/> 

你也最好不要窩f:ajax裏面Primefaces組件,反之亦然......

f:ajax是指具有使用原生JSF組件

p:ajax是指具有PrimeFaces組件使用

這是罰款兼得,Primefaces組件和JSF本地組件在一個頁面,只要確保在JSF本地組件

+0

我使用update =「koka」但沒有工作 – marouanoviche

+0

它的工作現在與更新謝謝你:D – marouanoviche

+0

我面對的問題,當我更新我的JSF頁面,因爲我有jQuery可排序當我使用更新拖放沒有工作後方案? – marouanoviche

1

首先要使用Primefaces組件p:ajaxf:ajax ,你正在使用PrimeFaces,p:commandButton已經AJAX,所以你不需要f:ajax

<p:commandButton id="someId" value="Button" action="#{gestionduplanning.exec2()}" update="koka" /> 

其他的東西,請確保您的數據源(getListop())由exec2()在bean被更新。

+0

如何更新我的數據源(getListtop())? – Erick

+0

那麼這取決於它是如何編程的,它是否總是從數據庫中加載,或者返回一個用@PostConstruct初始化的bean中的變量,或者... –

+0

我使用PostConstruct在一個名爲init()的方法上做了它。在該方法中,我調用DAO方法從數據庫中檢索所有行 – Erick