その場でレコードを変更するために、データテーブルの各行にオーバーレイ パネルが必要です。以下に示すように:
保存ボタンを押すと、新しい年齢を保存する属性(str)のセッターが2回呼び出される理由がわかりません。初めて新しい値を設定しますが、2 番目の設定では null 値を返します。
22:32:34,502 情報 [stdout] (http-localhost-127.0.0.1-8080-3) 31
22:32:34,502 情報 [stdout] (http-localhost-127.0.0.1-8080-3)
コードは次のとおりです。
<p:dataTable value="#{backbean.l}" var="l" style="width: 300px;">
<p:column>
<h:outputText value="#{l.id}" />
</p:column>
<p:column>
<h:outputText value="#{l.nome}" />
</p:column>
<p:column>
<h:outputText value="#{l.age}" />
</p:column>
<p:column>
<p:graphicImage value="/img/icone.png" id="newAge">
<p:overlayPanel id="imgPanel" for="newAge" showEvent="mouseover"
hideEvent="mousedown" showCloseIcon="true">
<h:outputText value="Change Age:" />
<p:inputText value="#{backbean.str}" style="margin-left: 10px;"></p:inputText>
<br />
<p:commandButton action="#{backbean.save}" value="Save"></p:commandButton>
</p:overlayPanel>
</p:graphicImage>
</p:column>
</p:dataTable>
前もって感謝します。
よろしくお願いします、
ルイス
@編集:
解決したと思います... dynamic="true" を追加しただけで、正常に動作するようです。明日、その解決策を検証し、ここで確認します。