我正在使用primefaces并且在使用p:dataTable时遇到问题。
<p:dataTable id="dataTable" var="label" value="#{myBean.labels}" editable="true" editMode="cell" widgetVar="dataTable" style="width: 350px;">
<p:ajax event="cellEdit" listener="#{myBean.onEdit}" update=":messages" />
<p:column headerText="Column 1" width="20">
<h:outputText id="current" value="#{myBean.currentTimeMillis}" />
</p:column>
<p:column headerText="Column 2" width="150">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{label.name}"/>
</f:facet>
<f:facet name="input">
<h:inputText value="#{label.name}"/>
</f:facet>
</p:column>
</p:dataTable>
我希望当我更新行的第二列的值时,会使用新值(currentTimeMillis)更新此行的第一列的值。
public void public void onEdit(CellEditEvent event)
{
UIData table = (UIData) event.getComponent();
String updateClientId = table.getClientId() + ":" + table.getRowIndex() + ":current";
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(updateClientId);
}
虽然调用此方法但第一列未更新。为什么?它不仅适用于Firefox。它适用于IE和Chrome。
提前致谢