2014-02-07 2 views
0

обновил код, но не реальное изменение.ajax call делает поле пустым

Когда я устанавливаю плеер, я хочу обновить другое, выберите одно меню с текущим игровым клубом. Но меню станет полностью пустым. Боб всегда будет возвращать правильное значение.

Перемещение со страницы и обратно показывает правильное значение. Затем он будет работать так, как вы планировали, после первого перехода.

<p:selectOneMenu value="#{player}" 
       converter="playerConverter" id="playerList"> 
      <f:selectItem itemLabel="---" noSelectionOption="true" /> 
      <f:selectItems value="#{servicePlayer.allPlayers}" 
      var="n" 
      itemValue="#{n}" 
      itemLabel="#{n.combinedName}" 
      itemLabelEscaped="true"/> 
       <p:ajax event="change" execute="@this" update="ClubMenu" actionListener="#{serviceHCP.getClubs(player)}"/> 
       <!-- p:ajax event="change" execute="@this" render="ClubMenu" /--> 
      </p:selectOneMenu> 

       <h:outputText value="Klubb"></h:outputText> 
       <p:selectOneMenu id="ClubMenu" value="#{serviceHCP.myClubList}" rendered="#{not empty serviceHCP.myClubList}"> 
        <f:selectItems value="#{serviceHCP.getClubs(player)}" /> 
       </p:selectOneMenu> 
       <h:outputText value="Serietyp"></h:outputText> 

Резервное функцию Bean

public void getClubs(Player player) { 

     if (factory == null) { 
      factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME); 
     } 

     EntityManager em = factory.createEntityManager(); 

     //If we have a player just return that players club 
     Query q; 
     if (player == null || player.getClub() == null) 
      q = em.createQuery("select t from Club t"); 
     else { 
      q = em.createQuery("select t from Club t where t.id = :playerID"); 
      q.setParameter("playerID", player.getClub().getId()); 
     } 

     myClubList = q.getResultList(); 
     for (Club aClub : myClubList) { 
      System.out.println("Club list info: " + aClub); 
     } 
     System.out.println("Club Size: " + myClubList.size()); 

     em.close(); 
    } 
+0

Похоже, что второй выберите один получить оказанные, прежде чем он имеет какую-либо информацию. – user2130951

ответ

0

Вы должны также обработать поле playerList:

<p:ajax process="@this" update="ClubMenu" /> 
+0

Это не помогает. Похоже, что getclubs() не вызван. – user2130951