我有以下selectOneMenu,在我的组件中我想要一个不应该显示的项目,例如如果#{Mybean.value} 的值与#{Mybean.ListValues} 中的值匹配,我不希望在我的网站中有空选项组合框。
<p:selectOneMenu value="#{Mybean.value}" hideNoSelectionOption="true"
required="true" requiredMessage="Required data">
<f:selectItem itemLabel="" itemValue="#{null}" noSelectionOption="true" />
<f:selectItems value="#{Mybean.ListValues}" var="option" itemLabel="#{option.optionName}"
itemValue="#{option.optionId}"/>
</p:selectOneMenu>
我搜索过,但我找不到任何有用的内容,primefaces forum中只有一个链接描述了这个问题。
我的主要版本是 3.5
答案 0 :(得分:3)
该属性doesn't exist in the official api或doc。你是从哪里得到的?
您实际需要的是f:selectItems
组件上的itemDisabled
attribute。正是这个属性禁止选择selectItem。历史上,primefaces has had problems with that attribute。
理想情况下,您应该
<p:selectOneMenu value="#{Mybean.value}" required="true" requiredMessage="Required data">
<f:selectItem itemLabel="" itemValue="#{null}" noSelectionOption="true" />
<f:selectItems itemDisabled="#{Mybean.value=='aValue'}" value="#{Mybean.ListValues}" var="option" itemLabel="#{option.optionName}" itemValue="#{option.optionId}"/>
</p:selectOneMenu>
答案 1 :(得分:2)
hideNoSelectionOption
在PrimeFaces 9.0中实现
答案 2 :(得分:0)
所以,基本上基于@kolossus的回答,我们可以在primefaces(当你使用<p:selectOneMenu
时......)的情况下添加以下空项
<f:selectItem itemValue="#{null}" itemLabel="--select--" itemDisabled="#{Mybean.value ne null}" />
我们可以在primefaces(当我们必须使用
注意:在这种情况下,我们不需要以下两个标签:
hideNoSelectionOption="true"
和
noSelectionOption="true"