2014-09-11 4 views
1

Я добавил OmniFaces к моему приложению Primefaces, прежде всего, для обновления одной строки dataTable. Я вызываю Ajax.updateColumn(dataTable, 1) на событие push, но ничего не обновляется. Например. один из моих клеток, как этого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 должен быть fullworthy компонент JSF UI, который делает конкретный HTML элемент на выход, так что JS/ajax может обновить его. Поэтому, если у вас есть из-за ограничений дизайна, например, <h:panelGroup rendered="..."> без идентификатора, тогда вы должны указать ему ID. Таким образом, он отобразит <span id="...">, который можно обновить JS/ajax.

Процент интересов <h:outputText> не имеет id. Дайте ему это.

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

Спасибо BalusC, это решило мою проблему. – user3172567

+0

Добро пожаловать. – BalusC

Смежные вопросы