2014-09-11 49 views
1

我已將OmniFaces添加到我的Primefaces應用程序中,主要是爲了能夠更新數據表的單個行。我在推送事件上致電Ajax.updateColumn(dataTable, 1),但沒有更新。例如。我的細胞之一是這樣的Ajax#updateColumn()不更新單元格

<p:column style="width:40px;text-align: center;" 
    toggleable="false" styleClass="smallPadding unmarkable"> 
    <f:facet name="header"> 
     <p:commandLink styleClass="ui-icon ui-icon-car" 
      style="display: inline-flex;" id="carIcon" /> 
    </f:facet> 
    <p:tooltip for="carIcon" value="Anzahl freie Fahrzeuge" /> 
    <h:outputText 
     value="#{editLoad.getAmountOfUnusedOrderPositions(order)}" /> 
    <h:outputText value="/#{order.orderPositions.size()}" /> 
</p:column> 

我已經調試和#{editLoad.getAmountOfUnusedOrderPositions(順序))}返回0,但更新後顯示錯誤的值(8)。

回答

0

the Ajax#updateColumn() javadoc

public static void updateColumn(UIData table, int index)

...

注意的UIColumn待更新的直接孩子必須是呈現一個具體的HTML元素的fullworthy JSF UI組件到輸出,以便JS/ajax可以更新它。所以如果你有設計限制,例如沒有ID的<h:panelGroup rendered="...">,那麼你應該給它一個ID。這樣,它將呈現一個可由JS/ajax更新的<span id="...">

你的興趣<h:outputText>沒有id。給它一個。

<h:outputText id="amountOfUnusedOrderPositions" 
    value="#{editLoad.getAmountOfUnusedOrderPositions(order)}" /> 
+0

感謝BalusC,這解決了我的問題。 – user3172567 2014-09-11 11:01:42

+0

不客氣。 – BalusC 2014-09-11 11:10:42