2

我有这个

<p:selectOneMenu  id="dec" value="#{editCommandController.myCom.decision}" >  
                        <f:selectItems value="#{editCommandController.decisions}" />  
                        <p:ajax update="etat :myform:alors" event="change" />
                    </p:selectOneMenu>  

它允许禁用此功能

<p:selectOneMenu  id="etat" value="#{editCommandController.myCom.etat}" disabled="#{editCommandController.myCom.decision eq 'rejettée'}" >  
                        <f:selectItems value="#{editCommandController.etats}" />   
                    </p:selectOneMenu> 

当检查条件时,我还想在检查相同条件时隐藏此面板网格:

 <h:panelGrid id="alors"   rendered="#{editCommandController.myCom.decision ne 'rejettée'}" >
                    <p:dataTable id="cars" style="width: 80px;" var="car" value="#{editCommandController.pdm}" paginator="true" rows="10"  
                                 selection="#{editCommandController.selectedPapier}" selectionMode="single" >  

                        <p:ajax event="rowSelect" listener="#{editCommandController.onRowSelect()}"   
                                update=":myform:jesuis" />  

                        <f:facet name="header">  
                            RadioButton Based Selection  
                        </f:facet>                    

                        <p:column headerText="libelle">  
                            #{car.libelle}  
                        </p:column>  

                        <p:column headerText="format">  
                            #{car.format}  
                        </p:column>  

                        <p:column headerText="stock" >  
                            #{car.stock}  
                        </p:column>  

                    </p:dataTable>  


                    <h:outputText  id="jesuis" value=" c est la papier : #{editCommandController.selectedPapier.libelle}"  />


                    <h:panelGrid columns="2" cellpadding="5" style="margin-top: 22px;">  
                        <h:outputLabel value="Reliure :" for="city" />
                        <p:selectOneMenu id="city" value="#{addPapierController.choixReliure}">  
                            <f:selectItem itemLabel="choisir reliure" itemValue="" />  
                            <f:selectItems value="#{addPapierController.libelleReliures}" />  
                            <p:ajax 
                                listener="#{addPapierController.handleCityChange}" />  
                        </p:selectOneMenu>
                    </h:panelGrid>

                </h:panelGrid>

但我注意到它在第一次加载页面时检查了 panelgrid

你有什么想法让这个功能像上面的 selectonemenu 一样一直工作,谢谢

4

1 回答 1

6

用 . 包围 panelGrid p:outputPanel。然后,在“dec”selectOneMenu 中,也更新了 outputPanel。假设所有这些组件都在同一个表单中,它看起来像这样:

<p:selectOneMenu  id="dec" value="#{editCommandController.myCom.decision}" >  
       <f:selectItems value="#{editCommandController.decisions}" />  
       <p:ajax update="etat gridContainer :myform:alors" event="change" />
</p:selectOneMenu>  

<p:outputPanel id="gridContainer" layout="block" >
    <h:panelGrid id="alors" rendered="#{editCommandController.myCom.decision ne 'rejettée'}" >
         <!-- panel grid contents here.. -->  
    </h:panelGrid>
</p:outputPanel>
于 2012-09-04T12:05:59.140 回答