1

私はprimefaces 3.5を使用しています。データテーブルの列の1つにap:selectonemenuがあります。また、同じデータテーブルの別の列に送信ボタンがあります。送信すると、行が削除されます。ここで、「その他」を選択して送信アクションを実行し、フォームを更新すると、他の行の p:selectonemenu 項目が最初の値として「その他」を取得します。「その他」を毎回最後の値に設定する方法は何ですか

 <p:column headerText="Buyer Response" style="white-space:pre-line;">
                            <p:selectOneMenu value="#{buyerInProcessBean.subject}"
                                id="buyerResponseId" >
                                <f:selectItems 
                                    value="#{buyerInProcessBean.subjectMap[trans.decisionrule.ruleId]}"
                                    var="subject" itemLabel="#{subject}" itemValue="#{subject}"></f:selectItems>
                                <f:selectItem itemLabel="Other" itemValue="Other" ></f:selectItem>
                            </p:selectOneMenu>
                        </p:column>
4

1 に答える 1

0

あなたが持っているので

<p:selectOneMenu value="#{buyerInProcessBean.subject}">

件名はすべての行で共有されます。もちろん、他の選択メニューは選択されたものと同じ値になります(あなたの場合はその他)。そのためには、簡単な修正をお勧めします。対象の属性を、反復しているオブジェクトに移動する必要があります。

もう 1 つの修正方法は、サブミット時に実行されたメソッドが終了したら、subject 属性を「Other」に設定することです。ただし、これにより、変更されたselectmenuでも値として「その他」が失われます。

結論として、件名が行間で共有されないように、ロジックを変更する必要があります

于 2013-03-20T12:49:48.720 に答える