Добавляем слушателя на основе схемы PrimeFaces AJAX, не отправляя обновленное значение
Привет,
Я работаю с таблицей данных, которую можно расширить, чтобы показать вариации продукта. Этот вариант должен быть редактируемым, и я подумал о компоненте inplace, чтобы сделать это. Однако при попытке сохранить новое не отправляется в бэк-энд.
Здесь является частью 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>
Если отлаживать, то при нажатии кнопки inplace метод gravarQuantidadeVariacao будет иметь availableQuantity с предыдущим значением, а не с новым. Я довольно много раз перечитывал этот вопрос, но не смог найти ничего подобного. Кто-нибудь может помочь?
Что я уже пробовал:
До сих пор я пытался использовать разные прослушиватели и события щелчка, но результат всегда один и тот же.
Я просмотрел документацию primefaces, но она мало чем помогла, кроме возможности вручную создать кнопку сохранения внутри inplace. Но это было бы лоскутное одеяло на чем-то, что должно/должно работать.
Текущий вызов inplace/ajax работает везде, но не здесь.. Так что у меня вроде как нет никаких идей о том, что делать