JSF PrimeFace: p повтор ajax обновление с неработающим классом - PullRequest
0 голосов
/ 07 января 2020

totalListSumA - это ArrayList внутри java. В режиме отладки arraylist работает просто отлично. В этом списке назначено новое значение.

Когда пользователь вводит новое значение в поле, программа пересчитывает новую сумму и отображает код, показанный ниже.

                        <p:inputNumber 
                            class="caseType1"
                            rendered="#{inputFormTemplateView.allowEdit}" 
                            inputStyle="text-align: center"                             
                            minValue="0"
                            maxValue="99999999"                             
                            decimalPlaces="0"
                            thousandSeparator=""
                            emptyValue=""
                            value="#{inputFormView.selectedInputFormDetail.data[dataField]}" >
                            <p:ajax update="dataField, #{inputForm4_1View.getColTotal()}"/>
                            <p:ajax update="@(.totalRow3)"></p:ajax>
                        </p:inputNumber> 


        <tr>
            <td align='center'>Total</td>
                <p:repeat var="item" value="#{inputForm4_1View.totalListSumA}" class="totalRow3">
                <td class="cell_cal" style='text-align:center;' >
                        <h:outputLabel 
                            class="totalRow3"
                            value="#{item}" />
                </td>
                </p:repeat> 
        </tr>

Я пробовал

  • h: panelGroup id = '...'
  • ui: repeat id = '....'

Все еще значение остается неизменным внутри p :повторение. Любой метод, который я могу попытаться получить и показать последнее значение внутри totalListSumA?

1 Ответ

1 голос
/ 07 января 2020

Это неправильно

<p:ajax update="dataField, #{inputForm4_1View.getColTotal()}"/>
<p:ajax update="@(.totalRow3)"></p:ajax>

1) Ajax должно иметь event = "change" или другие события, но самое неправильное - вызов метода bean внутри update.

2 ) Используйте listener="#{inputForm4_1View.getColTotal()}"

3) Не используйте 2 одинаковых Ajaxes.

Решение:

<p:ajax event="change" update="dataField, @(.totalRow3)" listener="#{inputForm4_1View.getColTotal()}"/>

Если это не решит вашу проблему, попробуйте обновить форму как update="@form" или update="yourFormId"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...