0

我有一个会话托管 Bean,其中有一个显示在数据表中的列表,当我单击按钮时,我更改了托管 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?

4

2 回答 2

2

删除<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 原生组件,只要确保p:ajax在 Primefaces 组件和f:ajaxJSF 原生组件中使用即可

于 2013-06-04T09:04:19.727 回答
2

首先,您使用的是 PrimeFaces,p:commandButton已经是 AJAX,所以您不需要f:ajax

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

另一件事,确保您的数据源 ( getListop()) 在 bean 中由exec2().

于 2013-06-04T09:04:56.107 回答