我正在使用一个DataTable,可以对其进行扩展以显示产品的变化。这种变化应该是可编辑的,我考虑过就地使用componenet。但是,在尝试保存时,新内容不会发送到后端。
这是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调用在其他任何地方都可以使用,但是在这里。所以我有点不知道该怎么做
关于这个问题,我已经做了很多事情,但是我找不到类似的东西。有人可以帮忙吗?