多分誰かが私を助けることができますか?
私は ace:datatable を持っています。ここでは、1 つの列がインライン編集モードで「selectonemenu」を使用しています。
<ace:column id="bundesland" headerText="Bundesland">
<ace:cellEditor>
<f:facet name="output">
<h:outputText id="bundeslandCell1" value="Baden-Württemberg" rendered="#{current.bundesland == 1}"/>
<h:outputText id="bundeslandCell2" value="Bayern" rendered="#{current.bundesland == 2}"/>
<h:outputText id="bundeslandCell3" value="Hamburg" rendered="#{current.bundesland == 3}"/>
<h:outputText id="bundeslandCell4" value="Nordrhein-Westfalen" rendered="#{current.bundesland == 4}"/>
<h:outputText id="bundeslandCell5" value="Sachsen" rendered="#{current.bundesland == 5}"/>
</f:facet>
<f:facet name="input">
<h:selectOneMenu id="bundeslandInput" value="#{current.bundesland}">
<f:selectItem itemLabel="Baden-Württemberg" itemValue="1" />
<f:selectItem itemLabel="Bayern" itemValue="2" />
<f:selectItem itemLabel="Hamburg" itemValue="3" />
<f:selectItem itemLabel="Nordrhein-Westfalen" itemValue="4" />
<f:selectItem itemLabel="Sachsen" itemValue="5" />
</h:selectOneMenu>
</f:facet>
</ace:cellEditor>
</ace:column>
データテーブルは、他の Bean を参照する Bean のリストに割り当てられます...
問題は、データテーブルのフォームを送信すると、フィールド「bundesland」のデータが失われることです。
例えば:
- アクションリスナーを使用して新しい行をデータテーブルに追加します
- 非永続的な新しい行をインライン編集する
- 保存を実行
すべて順調です!
今度は新しい行を挿入したいと思います。同じ手順を繰り返します。次回、「保存」を実行し、コマンドボタンをクリックすると、データテーブル全体の列「bundesland」が消去されました(永続化あり)。
問題は、コマンド ボタンの背後にあるアクションではありません。CommandButton に actionListener がない場合も、列はクリアされます。
ここのところ...
selectonemenu を使用した場合にのみ、Icefaces がすべての行の「bundesland」列をクリアするのはなぜですか?
「インライン編集」モードでの使用はまだ問題ありません。
手伝ってくれてありがとう!