【问题标题】:rendering panelgrid with ajax primefaces使用 ajax primefaces 渲染 panelgrid
【发布时间】:2012-08-29 02:04:41
【问题描述】:

我有这个

<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 一次 panelgrid

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

【问题讨论】:

    标签: java jakarta-ee jsf-2 primefaces rendering


    【解决方案1】:

    p:outputPanel 包围panelGrid。然后,在“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>
    

    【讨论】:

    • 请原谅我问这个问题。我可以问一下为什么您的解决方案有所作为吗?我遇到了非常相似的问题。在我的例子中,我用 h:panelGroup 包装了 p:panelGrid,并通过更新 h:panelGroup 来显示里面的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-27
    • 2011-04-14
    • 2015-04-25
    • 2016-02-20
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多