2013-06-04 2 views
0

Теперь я работаю с <p:ajax>, чтобы обновить/заполнить мои компоненты, но когда я выбираю объект в автозаполнении, ajax не обновляет мои компоненты.Обновление Ajax не обновляет мои компоненты

Мой код в поле ниже:

<p:panel header="Actviter le Projet"> 
<!--############# Chercher le Projet #############--> 
    <div id="projetCompleteCenter" align="center"> 
    <h:outputLabel value="#{bundle.searchProject} " /> 
    <p:autoComplete id="autoCompleteProjet" forceSelection="true" 
    minQueryLength="3" value="#{projetMB.projet}" 
     completeMethod="#{projetMB.completeProjet}" var="projet" 
     itemLabel="#{projetMB.projet.nomProjet}" dropdown="true" > 
    <p:ajax update="nomProjet nombreHeure dateDemarrage typeProjet" /> 
</p:autoComplete> 
</div> 

<p:separator /> 

<!--############# Donées du Projet #############--> 
<div id="idPanel"> 
     <h:panelGrid columns="2"> 

    <p:outputLabel for="nomProjet" value="#{bundle.nomProjet} " /> 
         <p:inputText id="nomProjet" value="#{projetMB.projet.nomProjet}" 
          required="true"> 
          <f:validateLength minimum="3" /> 
         </p:inputText> 

         <p:outputLabel for="nombreHeure" 
          value="#{bundle.nombreHeuresProjet} " /> 
         <p:inputText id="nombreHeure" 
          value="#{projetMB.projet.nbHeuresProjet}" required="true"> 
          <pe:keyFilter mask="num" for="nombreHeure" /> 
         </p:inputText> 

         <h:outputLabel for="dateDemarrage" 
          value="#{bundle.dateDemarrageProjet} " /> 
         <p:calendar id="dateDemarrage" 
          value="#{projetMB.projet.dateDebutProjet}" required="true" 
          pattern="dd/MM/yyyy" showOn="button" navigator="true"/> 

         <h:outputLabel for="typeProjet" value="Type du projet: " /> 
         <h:selectOneListbox id="typeProjet" 
          value="#{projetMB.projet.type}"> 
          <f:selectItems value="#{projetMB.typeProjetList}" var="pr" 
           itemLabel="#{pr.typeLabel}" itemValue="#{pr.typeValue}" /> 
         </h:selectOneListbox> 

        </h:panelGrid> 
       </div> 

Что не так?

Спасибо!

+0

Я думаю, что у вас есть неправильный идентификатор в 'Обновление = "nomProjet nombreHeure dateDemarrage typeProjet"'. –

+0

В чем заключаются рамки ** projetMB ** и ** bundle **? –

+0

@RongNK, что случилось? См.: [Форум Праймлайн] (http://forum.primefaces.org/viewtopic.php?f=3&t=400) – Andriel

ответ

1

Как событие по умолчанию для UIInputs является событием valueChange, я думаю, что ваша проблема в том, что вы не указали атрибут события p:ajax. В showcase они также явно указывают это, поэтому я считаю, что событие по умолчанию p:autoComplete на самом деле является «itemSelect» -event. Таким образом, вы должны указать "itemSelect" -Event явно:

<p:ajax event="itemSelect" update="nomProjet nombreHeure dateDemarrage typeProjet" /> 
+0

Спасибо! это работает! :) – Andriel