1

我正在使用 primefaces 3.5 我在数据表的一列中有 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}">

主题在所有行之间共享,当然,其他选择菜单将具有与所选菜单相同的值(在您的情况下为其他)。为此,我建议一个简单的修复,您必须将主题属性移动到您正在迭代的对象。

另一个解决方法是,在提交时执行的方法完成后,将主题属性设置为“其他”。但是这样一来,即使更改后的选择菜单也会失去“其他”的价值。

所以总而言之,你必须改变你的逻辑,这样主题就不会在行之间共享

于 2013-03-20T12:49:48.720 回答