2013-05-18 35 views
0

Iam嘗試使用primefaces更新基於面板的選定數據selectonemenu和ajax監聽器已通過更新面板進行了處理。但我的面板沒有更新,所選項目顯示在控制檯window.That意味着,在得到了AJAX調用到bean.but它沒有更新的面孔頁面管理,並提到我的代碼ajax監聽器未更新用於所選項目的面板

<p:panelGrid columns="1" style="align:center;width:80%" styleClass="companyHeaderGrid"> 
     <p:row> 
      <p:column><h:outputLabel for="runobject" value="Run Object: " /></p:column> 
      <p:column> 
      <p:selectOneMenu id="selectedState" value="#{TAScheduleBean.selectedRunObjectItem}" > 
      <p:ajax listener="#{TAScheduleBean.changePanelState}" render="@this" update=":form:displayDailyPanel"/> 
      <f:selectItem itemLabel="Select One" itemValue="Select One" /> 
      <f:selectItems value="#{TAScheduleBean.runObjectsValue}" /> 
      </p:selectOneMenu> 

      </p:column> 
      </p:row> 

      <p:row id="displayDailyPanel" rendered="#{TAScheduleBean.appSelectedRunObject eq 'Daily'}"> 
      <p:column> 
       <p:outputLabel value=" N days" /> 
         <p:outputLabel value="Days=" /><p:inputText id="s"/> 
      </p:column> 
    </p:panelGrid> 

我讀同一論壇的相關問題和其他論壇也。但問題沒有resolved.How我可以解決this.Please幫我

更新: -

ManagedBean

public class TAScheduleBean extends TASBean { 
     private String selectedRunObjectItem=""; 
     private String appSelectedRunObject=""; 
     TAScheduleBean(){ 

     } 
     public void changePanelState(){ 
     String methodName="changePanelState"; 

     setPanelIsVisible(true); 
     TALogger.log(Logger.INFO, className, 
       methodName, "---------"+getSelectedRunObjectItem()); 
     setAppSelectedRunObject(getSelectedRunObjectItem().trim()); 

     } 
    } 
+0

首先請發佈您的Managed bean代碼。 – Makky

+0

檢查受管bean代碼 – tech2504

+0

我看不到runObjectsValue方法。請始終發佈完整的代碼。 – Makky

回答

0

感謝guys.I解決我們所選擇的項目到issue.when未創建行,因爲我們所謂的「渲染」那個時候我attribute.So創建面板,然後在下面的代碼

提到
<p:panel id="toppanel"> <------- added panel 

<p:panelGrid columns="1" style="align:center;width:80%" styleClass="companyHeaderGrid"> 
     <p:row> 
      <p:column><h:outputLabel for="runobject" value="Run Object: " /></p:column> 
      <p:column> 
      <p:selectOneMenu id="selectedState" value="#{TAScheduleBean.selectedRunObjectItem}" > 
      <p:ajax listener="#{TAScheduleBean.changePanelState}" render="@this" update="toppanel"/> <------changed 
      <f:selectItem itemLabel="Select One" itemValue="Select One" /> 
      <f:selectItems value="#{TAScheduleBean.runObjectsValue}" /> 
      </p:selectOneMenu> 

      </p:column> 
      </p:row> 

      <p:row id="displayDailyPanel" rendered="#{TAScheduleBean.appSelectedRunObject eq 'Daily'}"> 
      <p:column> 
       <p:outputLabel value=" N days" /> 
         <p:outputLabel value="Days=" /><p:inputText id="s"/> 
      </p:column> 
    </p:panelGrid> 
</p:panel> 

其工作的罰款。