Primefaces inplace ajax слушатель не отправляет обновленное значение - PullRequest
0 голосов
/ 05 сентября 2018

Я работаю с таблицей данных, которую можно расширить, чтобы показать варианты продукта. Этот вариант должен быть редактируемым, и я подумал о том, чтобы сделать это на месте. Однако при попытке сохранить новое не отправляется на сервер.

Вот часть xhtml

<h:form>
    <p:dataTable id="grid-anuncios"
                 value="#{gerenciadorAnuncioController.model}" 
                 selection="#{gerenciadorAnuncioController.anunciosMLSelecionados}"
                 rowKey="#{anuncio.id}"
                 rowHover="false"
                 editable="true"
                 editMode="row"
                 var="anuncio" 
                 emptyMessage="Nenhum anúncio encontrado"
                 rows="50"
                 resizableColumns="true"
                 styleClass="Top GrayBorder BoxShadow"
                 paginator="true"
                 lazy="true">

                 <!--columns and stuff-->

        <p:rowExpansion>
            <div class="flexPanels">
                <ui:repeat value="#{anuncio.variations}"
                           var="variacao">
                    <p:outputPanel styleClass="panelVariacoes BoxShadowLight">
                        <div class="panelVariacoesHeader">
                            <p:graphicImage value="#{variacao.urlPrimeiraImagem}" styleClass="logoImage" />
                        </div>
                        <div class="panelVariacoesBody">
                            <p:outputPanel class="MarBot5 Fs15">

                                <h:outputText styleClass="FontLatoBold" value="Qtd: " />

                                <!-- The problem seems to be here -->

                                <p:inplace editor="true">
                                    <p:ajax event="save" 
                                            process="@parent"
                                            listener="#{gerenciadorAnuncioController.gravarQuantidadeVariacao(anuncio, variacao)}"
                                            update=":growl-principal"/>
                                    <f:facet name="output">
                                        <h:outputText value="#{variacao.availableQuantity}" />
                                    </f:facet>
                                    <f:facet name="input">
                                        <mml:inputNumber value="#{variacao.availableQuantity}"
                                                         required="true"
                                                         type="integer"
                                                         styleClass="Wid70px"/>
                                    </f:facet>
                                </p:inplace>


                            </p:outputPanel>
                            <div class="Separator"></div>
                            <ui:repeat value="#{variacao.attributeCombinations}" var="atributo">
                                <div class="JC-FlexBox MarBot5 Fs15">
                                    <h:outputText styleClass="FontLatoBold" value="#{atributo.name}: " />
                                    <h:outputText value="#{atributo.valueName}" />
                                </div>
                            </ui:repeat>
                        </div>
                    </p:outputPanel>
                </ui:repeat>
            </div>
        </p:rowExpansion>
     <p:dataTable>
<h:form>

Если при отладке при щелчке на месте у метода gravarQuantidadeVariacao будет доступно availableQuantity с предыдущим значением, а не с новым.

Текущий вызов inplace / ajax работает везде, но не здесь .. Так что у меня вроде нет идей, что делать

Я довольно много говорил об этой проблеме, но не смог найти ничего похожего. Кто-нибудь может помочь?

...