2013-06-04 83 views
0

我正在与<p:ajax>更新/填写我的组件,但是当我在autoComplete中选择对象时,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”'id错误。 –

+0

** projetMB **和**捆绑包**的范围是什么? –

+0

@RongNK怎么了?请参阅:[Primefaces论坛](http://forum.primefaces.org/viewtopic.php?f=3&t=400) – Andriel

回答

1

由于UIInputs的默认事件是valueChange事件,我认为你的问题是,你没有指定p:ajax的事件属性。在showcase他们明确地指定它,所以我认为p:autoComplete的默认事件实际上是“itemSelect” - 事件。所以,你必须指定 “itemSelect” -event明确:

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

谢谢!是工作! :) – Andriel