调用操作后,从primefaces数据表更新单元格

时间:2015-06-10 10:22:55

标签: jsf primefaces datatable

我想在点击该行中的按钮后更新我的primefaces数据表中的单个列。

我的jsf页面:

<h:form id="visitForm">
        <p:dataTable id="visitTable" var="visit" value="#{visitBean.findAllVisits()}" rows="2"
                     paginator="true" lazy="true">
            <p:column headerText="#{msgs['clearance']}"
                      sortBy="#{visit.maritimeDeclarationOfHealth.clearance.status}" id="clearance">
                <p:commandButton value="#{msgs['clearance.ok']}"
                                 actionListener="#{visitBean.changeClearance(visit)}" global="false" update="clearance"/>
            </p:column>
    </p:dataTable/>
</h:form>

我的visitBean:

@ManagedBean
@ViewScoped
public class VisitBean implements Serializable {

    ...

    public void changeClearance(Visit visit) {
        visit.changeClearance();
    }
}

visitService将间隙从OK更改为NOK,但我的datatables列未更改。有任何想法吗?

Primefaces 5.2

我看过How update just specific cell in primefaces dataTable,但这似乎无法解决。

1 个答案:

答案 0 :(得分:0)

我通过不更新列但更新该列中的元素来修复它:

<p:column headerText="#{msgs['clearance']}">
  <p:outputPanel id="clearance">
     <p:commandButton value="#{msgs['clearance.ok']}" actionListener="#{visitBean.changeClearance(visit)}" 
      global="false" update="clearance"/>
  </p:outputPanel>
</p:column>