我想在点击该行中的按钮后更新我的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,但这似乎无法解决。
答案 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>