Jsf 2 Primefaces动态覆盖面板,无需内部呈现页面的其余部分
我们在Wildlfy 8.1.0决赛中使用Primefaces 5.09和JSF 2.1.2 我们有一个包含大量内容的datatable,它需要花费相当长的时间来加载(这是正常的) 在每一行中,我们都有一个commandLink,它引用在合成中定义的动态加载的overlypanel:Jsf 2 Primefaces动态覆盖面板,无需内部呈现页面的其余部分,jsf-2,primefaces,Jsf 2,Primefaces,我们在Wildlfy 8.1.0决赛中使用Primefaces 5.09和JSF 2.1.2 我们有一个包含大量内容的datatable,它需要花费相当长的时间来加载(这是正常的) 在每一行中,我们都有一个commandLink,它引用在合成中定义的动态加载的overlypanel: <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmln
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:panelGroup>
<p:commandLink id="CID" title="#{messageId}" type="button" value="#{messageId}" ajax="true" actionListener="#{SyncClientPopupBean.setSyncClientById(messageId)}" update="grid" disabled="#{not Shiro.isPermitted('admin:syncclient:read')}" />
<p:overlayPanel for="CID" dynamic="true" at="right top" my="left bottom" appendTo="@(body)">
<p:panelGrid id="grid" columns="2" styleClass="ui-datatable-auto-width">
<...../>
</p:panelGrid>
</p:overlayPanel>
</h:panelGroup>
</ui:composition>
Ajax请求本身工作正常,因为结果只包含OverlyPanel的内容。
我们现在的问题是,OverlyPanel上的更新似乎也会在加载datatable等项目时在内部呈现页面的其余部分。
因此,为面板请求这个非常小的内容大约需要加载整个数据表的时间
整个页面的支持bean和覆盖已经分离
有没有可能让Primefaces只渲染这一个组件?所以每一行都有这样一个覆盖面板?而且在同一时间打开的门不会超过一个?如果是这样的话,为什么不只使用表外的一个,它的内容会根据所选行动态更新?现在它会呈现给每一行。如果我在数据表外放置一个OverlyPanel,它能解决我的问题吗?如果是的话,我会看看是否能找到合适的解决办法。关键是,它被用作跨多个数据表的组合。但是,如果将它放在外部是唯一的解决方案,我将不得不将它分成两个组合。我尝试使用一个覆盖面板以及数据表外部的对话框。即使我把它们放在一个额外的表单中,并告诉commandLink只处理带有对话框的数据fpr,datatable也会被访问。似乎Primefaces在每个ajax请求中呈现(或至少加载)数据表,而不管是否需要。所以每一行都有这样的覆盖面板?而且在同一时间打开的门不会超过一个?如果是这样的话,为什么不只使用表外的一个,它的内容会根据所选行动态更新?现在它会呈现给每一行。如果我在数据表外放置一个OverlyPanel,它能解决我的问题吗?如果是的话,我会看看是否能找到合适的解决办法。关键是,它被用作跨多个数据表的组合。但是,如果将它放在外部是唯一的解决方案,我将不得不将它分成两个组合。我尝试使用一个覆盖面板以及数据表外部的对话框。即使我把它们放在一个额外的表单中,并告诉commandLink只处理带有对话框的数据fpr,datatable也会被访问。似乎Primefaces在每个ajax请求中呈现(或至少加载)数据表,无论是否需要