【发布时间】:2013-06-05 22:00:31
【问题描述】:
我现在正在使用 <p:ajax> 来更新/填写我的组件,但是当我在 autoComplete 中选择 Object 时,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>
怎么了?
谢谢!
【问题讨论】:
-
我认为您在
update="nomProjet nombreHeure dateDemarrage typeProjet"中的 id 有误。 -
projetMB 和 bundle 的范围是什么?
-
@RongNK 怎么了?见:Primefaces forum
-
我觉得应该用逗号分隔
-
@AlexandreLavoie ,抱歉,我更改为进行测试并再次返回(再次查看代码)。 projetMB 是 ManagedBean 作用域,在高层管理对象 Projet。
标签: java jsf primefaces