【发布时间】:2011-08-31 12:06:00
【问题描述】:
单击数据表中的按钮时,我试图打开一个对话框。该对话框包含另一个数据表,其中包含与按钮所属行相关的详细信息。 侦听器设置详细数据表所需的变量。 使用下面的 sn-p 似乎更新(以及详细数据表使用的列表的创建)是在触发 actionListener 之前执行的,因此对话框中的 dataTable 始终为空。 为什么?这是想要的行为吗?还有其他方法可以解决我的问题吗?
我使用了 action 而不是 actionListener,结果相同。
这是第一个数据表中的元素按钮:
<p:column style="width:16px;padding-left:4px;padding-right:4px;">
<f:facet name="header">
</f:facet>
<p:commandButton image="ui-icon ui-icon-search"
style="width:1.8em;height:1.8em"
onsuccess="tDialog.show()"
title="#{msgs.dettaglio}"
process="@this, timbrature_dt"
update="timbrature_dt"
immediate="true"
actionListener="#{dispCongediMBean.timbratureDettAction(dett)}">
</p:commandButton>
</p:column>
这是对话框:
<p:dialog header="#{msgs.timbrature}" widgetVar="tDialog" resizable="false">
<p:dataTable id="timbrature_dt"
value="#{dispCongediMBean.timbratureDataList}"
var="tdett">
<p:column>
<f:facet name="header">
#{msgs.data}
</f:facet>
<h:outputText value="#{tdett.sDtComp}"/>
</p:column>
....
以下是调用顺序:
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getTimbratureDataList
INFO: Nessuna timbratura.
INFO: getDettaglioDataList list dettaglio: 4
INFO: timbratureDettAction
INFO: gius corrente 315
如您所见,getTimbratureDataList() 方法在 actionListener timbratureDettAction() 之前调用,该方法正确设置了不幸未使用的值。
我正在使用 Glassfish 和 primefaces 2.1.1。
【问题讨论】:
标签: ajax jsf jsf-2 primefaces actionlistener