【发布时间】:2013-04-24 12:08:16
【问题描述】:
我在下面有这个自动完成组件,它可以在数据表之外工作,但它不能在其中工作
我看不出原因:
<p:dataTable id="table" var="car" editable="true" editMode="cell"
widgetVar="carsTable" rowKey="#{car.idarticleFourniseur}"
value="#{articlesMB.listarticlefournisseurs}" rows="3">
<p:ajax event="cellEdit" listener="#{articlesMB.onCellEdit}"
update=":messages" />
<p:column headerText="Id">
<h:outputText value="#{car.idarticleFourniseur}" />
</p:column>
<p:column headerText="Nom">
<h:outputText value="#{car.libelle}" />
</p:column>
<p:column headerText="Fournisseur">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{car.fournisseur.personne.nom}" />
</f:facet>
<f:facet name="input">
<p:autoComplete id="dfdd" var="p" itemLabel="#{p.personne.nom}"
itemValue="#{p}" dropdown="true" process="@this"
value="#{articlesMB.selectedFournisseur}"
forceSelection="true" converter="#{fournisseursConverter}"
completeMethod="#{articlesMB.complete}">
<p:column>
#{p.personne.nom} - #{p.personne.prenom}
</p:column>
</p:autoComplete>
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>
<p:autoComplete id="dfd" var="p" itemLabel="#{p.personne.nom}"
itemValue="#{p}" dropdown="true" process="@this"
value="#{articlesMB.selectedFournisseur}" forceSelection="true"
converter="#{fournisseursConverter}"
completeMethod="#{articlesMB.complete}">
<p:column>
#{p.personne.nom} - #{p.personne.prenom}
</p:column>
</p:autoComplete>
第二个自动完成工作正常,但第一个(在数据表中)不起作用(完成不出现)
你有什么想法
提前谢谢你
【问题讨论】:
-
把自动完成放在一个方面对我来说有点奇怪。您是否尝试删除它周围的刻面?
-
另外:也许这个来自 BalusC 的 answer 有帮助。将面中的所有内容放在面板中
-
不幸的是,
h:panelgroup什么都不做,当我删除这个方面时,我看到了这个错误:java.lang.NullPointerException at org.primefaces.component.celleditor.CellEditorRenderer.encodeEnd(CellEditorRenderer.java:43) -
注:完成的方法被调用,但没有出现元素列表
-
这是个问题吗? :) 不,我没有。我需要一个例子来重现这个。然后我/一个人可以尝试调试它并查看它挂在哪里。如果调用了完成方法,我猜该请求也会返回给浏览器。您是否使用浏览器开发工具(例如 firebug)检查了请求返回的内容?也许请求被正确返回了,但是当应该显示自动完成框时,DOM 中存在可见性问题。
标签: jsf-2 process autocomplete primefaces datatable