2013-05-18 33 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> 

其工作的罚款。