如何通过在jsf中从面板网格执行操作来更新面板

时间:2014-04-18 07:36:04

标签: jsf primefaces

尝试通过单击其他panelgrid中的按钮来更新面板。但是无法正常工作

     <h:panelGrid columns="3"  id="qualaddpanelgrid12">
                <p:selectOneMenu value="#{qualCntrl.qualificationGroup}"  id="qualificationGroup"  style="width:180px;" disabled="#{qualCntrl.dropDownEnable}">  
                <f:selectItem itemLabel="Please Select" Value="P" />  
                <f:selectItems itemLabel="#{qualCntrl.qualificationGroupList()}" value="#{qualCntrl.qualificationGroupList()}" />  
                </p:selectOneMenu>   
                &nbsp; 
                <p:commandButton icon="ui-icon-plus" actionListener="#{qualCntrl.enableGroupPanel}"  update="qualaddpanelgrid12,groupPanel" ></p:commandButton>
<p:panel id="groupPanel" header="Add New Group"  closable="true"   widgetVar="groupPanel" style="width:170px;" rendered="#{qualCntrl.groupPanelEnable}">
         </p:panel>

groupPanel未更新。

1 个答案:

答案 0 :(得分:1)

我想你的问题是你的面板不会出现在屏幕上。 原因是您无法更新未呈现的组件。您必须将p:面板放入另一个p:面板(或任何容器组件)并更新外部组件。 e.g:

<p:commandButton icon="ui-icon-plus" actionListener="#{qualCntrl.enableGroupPanel}"  update="qualaddpanelgrid12,updateMe" />
<p:panel id="updateMe">
    <p:panel id="groupPanel" header="Add New Group"  closable="true"   widgetVar="groupPanel" style="width:170px;" rendered="#{qualCntrl.groupPanelEnable}"></p:panel>
</p:panel>