数据表中的primefaces selectonemenu和f:selectonemenu
Posted
技术标签:
【中文标题】数据表中的primefaces selectonemenu和f:selectonemenu【英文标题】:primefaces selectonemenu and f:selectonemenu in datatable 【发布时间】:2013-03-09 12:47:33 【问题描述】:我正在使用 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>
【问题讨论】:
【参考方案1】:因为你有
<p:selectOneMenu value="#buyerInProcessBean.subject">
主题在所有行之间共享,当然,其他选择菜单将具有与所选菜单相同的值(在您的情况下为其他)。为此,我建议一个简单的修复,您必须将主题属性移动到您正在迭代的对象。
另一个解决方法是,在提交时执行的方法完成后将主题属性设置为“其他”。但是这样一来,即使更改后的选择菜单也会失去“其他”的价值。
总之,你必须改变你的逻辑,这样主题就不会在行之间共享
【讨论】:
@Raissi:我改变了业务逻辑。它现在工作。感谢您的快速回答以上是关于数据表中的primefaces selectonemenu和f:selectonemenu的主要内容,如果未能解决你的问题,请参考以下文章
数据表中的primefaces selectonemenu和f:selectonemenu
无法在PrimeFaces中使用OnRowEdit编辑数据表中的值
Primefaces:从p:dataTable中的行选择中排除列