2013-04-28 56 views
0

我遇到了兩天的問題。無處我提前 我的問題是根據一覽P中選擇元素,以使面板的動態內容:selectOneMenu用於我卡在動態面板上

<h:outputLabel value="Categorie :" /> 
       <p:selectOneMenu value="#{composantbean.selectedCategoryId}" required="true" > 
        <f:selectItem itemLabel="Select categorie" itemValue="" /> 
        <f:selectItems value="#{composantbean.listcat}" var="cat" itemValue="#{cat.nomCat}" itemLabel="#{cat.nomCat}" /> 
        <p:ajax update="panl" event="change" listener="#{composantbean.catListener()}"/> 
       </p:selectOneMenu> 


<p:panel id="panl" header ="Caracteristique selon la categorie" toggleable="true" rendered="true" > 

      <h:panelGrid id="panlecart" columns="2" cellpadding="5" rendered="true"> 
      <c:forEach items="#{composantbean.categorie.proprietes}" var="var"> 

      <h:outputText value="#{var.nomProp}"/> 
      <h:inputText value="" /> 

      </c:forEach> 
     </h:panelGrid> 
      </p:panel> 

內容出現,這是真實的,但遺憾的是它不同步,顯示移 但如果我用顯示另一<p: selectOneMenu id = "panel"內容和同步

唧唧我我的定勢。請prblem並感謝您提前

+1

使用C:的foreach是JSF是一個壞主意。你應該更喜歡用戶界面:重複。這是由於生命週期的差異,並可能導致像你所描述的問題。 – Lucas 2013-04-28 16:48:47

+0

Thx盧卡斯它現在正常工作 – FERESSS 2013-04-28 19:37:50

回答

1

正如盧卡斯說,這是一個壞主意,使用C:的foreach(及各種JSTL的)在JSF中,尤其是使用ajax。 下面是你應該閱讀參考資料,瞭解更多關於JSTL的JSF:

  1. JSTL in JSF2 Facelets... makes sense?
  2. http://www.ninthavenue.com.au/jsf-c-foreach-vs-ui-repeat

使用UI:重複H:不建議panelGrid中也。您可以閱讀討論here

所以,恕我直言,你應該嘗試另一種方法,如使用dataTable,如上述鏈接中所述。
或者,您可以使用html的表格標籤(<表格>)作爲h:panelGrid的替代品,在ui:repeat中使用html的tr和td標籤。例如:

<h:outputLabel value="Categorie :" /> 
<p:selectOneMenu value="#{composantbean.selectedCategoryId}" required="true" > 
    <f:selectItem itemLabel="Select categorie" itemValue="" /> 
    <f:selectItems value="#{composantbean.listcat}" var="cat" itemValue="#{cat.nomCat}" itemLabel="#{cat.nomCat}" /> 
    <p:ajax update="panl" event="change" listener="#{composantbean.catListener()}"/> 
</p:selectOneMenu> 

<p:panel id="panl" header ="Caracteristique selon la categorie" toggleable="true" rendered="true" > 

    <table> 
    <ui:repeat value="#{composantbean.categorie.proprietes}" var="var"> 
    <tr> 
     <td><h:outputText value="#{var.nomProp}" /></td> 
     <td><h:inputText value="" /></td> 
    </tr> 
    </ui:repeat> 
    </table> 
</p:panel> 
+0

thx亞歷山大爲您的合作 – FERESSS 2013-04-28 19:38:30