Jsf 调用操作后从primefaces数据表更新单元格
我想在单击primefaces数据表中的一行按钮后更新该行中的一列 我的jsf页面:Jsf 调用操作后从primefaces数据表更新单元格,jsf,primefaces,datatable,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
<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>
visitService将清除从OK更改为NOK,但我的datatables列没有更改。有什么想法吗
Primefaces 5.2
我已经看过了,但这似乎并没有解决问题。我通过不更新列而是更新该列中的元素来修复它:
<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>
这不是“修复”,而是按原意去做正如您提到的:“但是我的datatables列没有改变。”您引用的是列id,而不是当时的内容。您在问题中发布的链接是关于更新关于完整数据表的内容。难怪它没有解决你的问题。你发布的链接是关于更新一个完整数据表的内容。难怪它没有解决您的问题;-)
<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>