我使用的是primefaces 3.5 我在数据表中的一列中有一个p: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>
答案 0 :(得分:0)
因为你有
<p:selectOneMenu value="#{buyerInProcessBean.subject}">
主题在所有行之间共享,当然,其他选择菜单将具有与所选行相同的值(在您的情况下为其他菜单)。为此,我建议一个简单的修复,你必须将subject属性移动到你正在迭代的对象。
另一个修复方法是,在提交完成后执行方法后,将subject属性设置为“Other”。但有了这个,即使改变的选择菜单也会失去“其他”作为价值。
总而言之,您必须更改逻辑,以便不在行之间共享主题