Events PrimesFaces-在onChange之后呈现panelGroup

Events PrimesFaces-在onChange之后呈现panelGroup,events,primefaces,selecteditem,Events,Primefaces,Selecteditem,我有一个带有两个项目的selectOne菜单,还有一个面板组。 选择项目1时,我想显示panelGroup,选择项目2时隐藏它 我尝试使用onchange事件来完成,但我不知道如何显示/隐藏panelGroup。也许是使用panelGroup ID <p:selectOneMenu id="list" value="#{myBean.list}" onchange="???" > <f:selectItem itemLabel="Item 1" itemValue=

我有一个带有两个项目的
selectOne菜单
,还有一个
面板组
。 选择项目1时,我想显示panelGroup,选择项目2时隐藏它

我尝试使用
onchange
事件来完成,但我不知道如何显示/隐藏panelGroup。也许是使用panelGroup ID

<p:selectOneMenu id="list" value="#{myBean.list}" onchange="???" >  
    <f:selectItem itemLabel="Item 1" itemValue="Item 1" />  
    <f:selectItem itemLabel="Item 2" itemValue="Item 2" />  
</p:selectOneMenu> 

<h:panelGroup id="myPanelGroup">
    ...
</h:panelGroup>

...
change=“”将授予您访问EL侦听器或javascript的权限,后者没有更新组件。最好在selectOneMenu中添加一个ajax调用

e、 g

您可以使用
标记更新表单。并使用“渲染”显示/隐藏面板

请看下面的代码,它在我这边工作,而且更容易

  <p:remoteCommand id="remotecommand" name="updatePanel"
         update="@form"></p:remoteCommand>
<p:selectOneMenu id="list" value="#{myBean.list}" onchange="updatePanel()" >  
    <f:selectItem itemLabel="Item 1" itemValue="Item 1" />  
    <f:selectItem itemLabel="Item 2" itemValue="Item 2" />  
</p:selectOneMenu> 

<h:panelGroup id="myPanelGroup" rendered="#{myBean.list eq 'Item 1'}">
    ...
</h:panelGroup>

...

当列表的值为
项1时,此时显示面板,否则隐藏按需呈现内容是jsf中的常见做法。您还应该重新考虑使用两个选项
selectOneMenu
。您必须将内容包装在
panelGroup
元素中,并将内部元素设置为如下所示:

<p:selectBooleanCheckbox id="cboOverview" value="#{ctrlBean.bValue}">
    <p:ajax event="change" update="outputOverviewWrapper" />
</p:inputSwitch>
<h:panelGroup id="outputOverviewWrapper">
    <h:panelGroup id="toggleOverview" rendered="#{!ctrlBean.bValue}">
...
    </h:panelGroup>
</h:panelGroup>

...
如果要继续使用
selectOne菜单
,还应使用
valueChangeListener
正确设置渲染属性


参考是。

你的帖子很有用!非常感谢。
  <p:remoteCommand id="remotecommand" name="updatePanel"
         update="@form"></p:remoteCommand>
<p:selectOneMenu id="list" value="#{myBean.list}" onchange="updatePanel()" >  
    <f:selectItem itemLabel="Item 1" itemValue="Item 1" />  
    <f:selectItem itemLabel="Item 2" itemValue="Item 2" />  
</p:selectOneMenu> 

<h:panelGroup id="myPanelGroup" rendered="#{myBean.list eq 'Item 1'}">
    ...
</h:panelGroup>
<p:selectBooleanCheckbox id="cboOverview" value="#{ctrlBean.bValue}">
    <p:ajax event="change" update="outputOverviewWrapper" />
</p:inputSwitch>
<h:panelGroup id="outputOverviewWrapper">
    <h:panelGroup id="toggleOverview" rendered="#{!ctrlBean.bValue}">
...
    </h:panelGroup>
</h:panelGroup>