我有一個DataTable數據錶行選擇不工作
<p:dataTable id="db"
value="#{notificationBox.notificationsList}"
var="notificationForm"
rows="15"
emptyMessage="${msgs.getMessage('table.empty.message')}"
paginator="true"
paginatorPosition="bottom"
rowKey="#{notificationForm}"
selection="#{notificationBox.notification}"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} (${notificationBox.notificationsList.size()} ${msgs.getMessage('table.records')})"
selectionMode="single"
tableStyle="height:430px">
//Rest of the code
這裏如果我選擇的任何行,我去爲一個Ajax調用(相同primefaces即時行選擇的例子)。 Ajax位於Datatable中。
<p:ajax event="rowSelect" listener="#{notificationBox.onRowSelect}"
oncomplete="carDialog.show();" />
我支持bean類 -
private List<NotificationForm> notificationsList;
public NotificationForm notification;
public void onRowSelect(SelectEvent event) {
LOGGER.info("Here. +"+notification);
}
//Setter and Getters.
的問題是,如果我選擇任何行, 「通知」 即將爲空。我無法進一步處理。請幫忙。任何替代方法也是受歡迎的。
編輯: -
我的Managed Bean的範圍 -
<managed-bean>
<managed-bean-name>notificationBox</managed-bean-name>
<managed-bean-class>com.comviva.workflow.ui.notification.NotificationBox</managed-bean-class>
<managed-bean-scope>view</managed-bean-scope>
<managed-property>
<property-name>notificationDao</property-name>
<value>#{notificationDaoService}</value>
</managed-property>
<managed-property>
<property-name>userInfoDao</property-name>
<value>#{userInfoDaoProxy}</value>
</managed-property>
</managed-bean>
託管bean的範圍是什麼? –
你的'rowKey'奇怪地令人懷疑。 PrimeFaces會吃那個嗎?它是否實現了equals/hashcode?我從來沒有嘗試過,但我希望在這裏看到一個'#{entity.id}'。 – BalusC
@LuiggiMendoza,在視野範圍內。我已經更新了細節。 – theGamblerRises