使用AJAX时,如何更新p:datatable中的单行?
我不想更新整个数据表,因为它有很多行,而且需要一些时间.
我的布局:
<h:form id="visitForm">
<p:dataTable id="visitTable" var="visit" value="#{visitBean.findAllVisits()}">
<p:column headerText="${msgs['email']}"
<h:outputText value="#{visit.contactDetail.email}"/>
</p:column>
<p:column headerText="${msgs['clearance']}" id="clearance">
<p:commandButton value="${msgs['clearance.ok']}" actionListener="#{visitBean.makeClearanceNotOk(visit)}"/>
</p:column>
</p:dataTable>
</h:form>
我尝试了一些像update =“clearance”等的东西,但它似乎没有用.
我正在使用JSF 2.1和Primefaces 5.2
您可以使用@row(n)搜索表达式来实现这一点 – 它会更新表中的第n行.要更新当前行,您需要将行索引作为参数传递.在< p:dataTable>上设置rowIndexVar =“rowIdx”属性接着:
<p:commandButton ... update="@form:visitTable:@row(#{rowIdx})" />