嗨,我整天都在为这个问题打我的头,我不知道该怎么办,我希望这个论坛上的人可以帮助我。
当我使用 dataTable 元素呈现独立页面时,所有 Ajax 功能都可以工作:排序、导航等。
但是,当我通过“ui:include”标签在另一个页面中包含具有 dataTable 元素的同一页面时,表格会呈现,但所有 Ajax 功能都会丢失。
这是我的“p:dataTable”页面的代码:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui"
xmlns:ui="http://java.sun.com/jsf/facelets">
<p:dataTable id="dataTable"
var="alarm"
value="#{alarmsBean.alarms}"
paginator="true" rows="10"
paginatorTemplate="{FirstPageLink} {PreviousPageLink} {NextPageLink} {LastPageLink}"
paginatorPosition="bottom">
<f:facet name="header">
Alarms
</f:facet>
<p:column id="deviceHeader" sortBy="#{alarm.device}">
<f:facet name="header">
<h:outputText value="Device" />
</f:facet>
<h:outputText value="#{alarm.device}" />
</p:column>
<p:column sortBy="#{alarm.alarm}">
<f:facet name="header">
<h:outputText value="Alarm" />
</f:facet>
<h:outputText value="#{alarm.alarm}" />
</p:column>
<p:column sortBy="#{alarm.managedObject}">
<f:facet name="header">
<h:outputText value="Managed Object" />
</f:facet>
<h:outputText value="#{alarm.managedObject}" />
</p:column>
<p:column sortBy="#{alarm.alarmTime}">
<f:facet name="header">
<h:outputText value="Alarm Time" />
</f:facet>
<h:outputText value="#{alarm.alarmTime}" />
</p:column>
<p:column sortBy="#{alarm.severity}">
<f:facet name="header">
<h:outputText value="Severity" />
</f:facet>
<h:outputText value="#{alarm.severity}" />
</p:column>
<p:column sortBy="#{alarm.message}">
<f:facet name="header">
<h:outputText value="Message" />
</f:facet>
<h:outputText value="#{alarm.message}" />
</p:column>
</p:dataTable>
</ui:composition>
这是包含该页面的其他页面的部分:
<h:form id="mainF">
<pe:layoutPane id="center" position="center">
<h:panelGroup id="centerContent">
<ui:include src="#{navigationBean.pageName}.xhtml" />
</h:panelGroup>
</pe:layoutPane>
</h:form>
我做错了什么或者这是 PrimeFaces 3.3 中的错误?