1

多分誰かが私を助けることができますか?

私は 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」列をクリアするのはなぜですか?

「インライン編集」モードでの使用はまだ問題ありません。

手伝ってくれてありがとう!

4

0 に答える 0