Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 在p:SelectOne菜单primefaces中隐藏某些元素_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 在p:SelectOne菜单primefaces中隐藏某些元素

Jsf 2 在p:SelectOne菜单primefaces中隐藏某些元素,jsf-2,primefaces,Jsf 2,Primefaces,我有一个SelectOne菜单,我想根据条件x.situacao eq'INATIVO'隐藏来自Bean的一些值 <p:selectOneMenu id="selectonemenu" value="#{pessoaBean.pessoa.profissao}" filter="true" filterMatchMode="startsWith" converter="simpleEntityConvert

我有一个SelectOne菜单,我想根据条件x.situacao eq'INATIVO'隐藏来自Bean的一些值

 <p:selectOneMenu id="selectonemenu" 
                    value="#{pessoaBean.pessoa.profissao}" filter="true"
                    filterMatchMode="startsWith" converter="simpleEntityConverter"
                    required="true" requiredMessage="Selecione uma Profissao para Pessoa">

                    <f:selectItem itemValue="" itemLabel="Selecione..."
                        noSelectionOption="true" />

                    <f:selectItems value="#{profissaoBean.profissoes}" var="x"
                        itemLabel="#{x.nome}" itemValue="#{x}" 
                        itemDisabled="#{x.situacao eq 'INATIVO'}"/>

                </p:selectOneMenu>
我得到的是禁用的值,但没有从selectonemenu中隐藏它


你怎么知道的?一种方法是在Bean上过滤,但我想使用我已有的方法。

您可以在服务器端过滤selectItems的集合,只将过滤后的集合传递给客户端,或者使用CSS集{display:none}对禁用的项也应该起作用,我guess@stg在这样的元素上出现这种行为是很正常的,我想知道JSF是否可以以某种方式实现这种行为。我目前使用的第一种方法是在managedbean中准备这些集合并进行一些ajax更新,在我的例子中,如果列表不是很大的话,那么它工作得很好,并且不会对性能造成太大的影响~100到200项。不幸的是,jsf组件selectItem/s不支持内置呈现属性。几个月前我也一直在寻找这个……当使用CSS时,这是解决方案吗。ui-selectlistbox-item.ui-state-disabled{display:none;}