У меня есть dataTable
с commandButton
в каждом row
. Если я нажму commandButton
, откроется dialog
с некоторыми подробностями в выбранной строке.
<p:commandButton
update="mainForm:myDialog"
action="#{bean.fetchData(user)}"
oncomplete="PF('myDialog').show();"
title="Details"
/>
Это метод fetchData()
в bean
:
public void fetchData(user) {
this.events = this.db.fetchDataForUser(user);
}
Диалог:
<p:dialog
header="Details"
id="myDialog"
modal="true"
resizable="false"
width="1000px"
height="700px"
>
<p:dataTable
value="#{bean.events}"
var="event"
>
<p:column
headerText="Event"
style="vertical-align: top; text-align: center;"
width="auto"
>
<h:outputText
value="#{event.eventType}"
/>
</p:column>
....
</p:dataTable>
</p:dialog>
Идея состоит в том, что когда commandButton
нажата, fetchData()
запускается и устанавливает список events
. После этого dialog
открывается и отображает events
. Но это не работает. До вызова fetchData
, getter
выполняется несколько раз. Затем fetchData()
вызывается как ожидалось и устанавливает список events
. Но когда снова вызывается getter
для events
, events
по-прежнему null
.