我有一个带有一堆可切换面板的Primefaces数据网格。
这些面板由ajax民意调查更新。
我想在不失去切换状态的情况下刷新面板。
updateNodes方法只询问新值并返回datagrid使用的值对象...
这是我的代码:
<h:form id="server_node_form">
<p:poll interval="10" listener="#{serverNodesView.updateNodes}" update="nodeDataGrid" />
<p:dataGrid var="node"
value="#{serverNodesView.dragoNodeGroup.dragoNodes}" columns="3"
layout="grid" rows="10" paginator="false" id="nodeDataGrid" >
<f:facet name="header">
Estados de los nodos del servidor
</f:facet>
<p:panel toggleable="true" collapsed="true"
toggleTitle="Información detallada del nodo">
<f:facet name="header">
<p:panelGrid columns="2" layout="grid"
styleClass="ui-panelgrid-blank"
columnClasses="ui-grid-col-3,ui-grid-col-9">
<p:graphicImage
name="images/server_#{node.status.toLowerCase()}.png" width="64"
height="64" />
<p:panelGrid columns="1" styleClass="ui-panelgrid-blank">
<h:outputText value="#{node.hostname}"
style="font-weight: bold; font-size: 120%" />
<h:outputText value="#{node.ip}: #{node.status}"
style="font-weight: bold; font-size: 120%" />
<h:outputText value="#{node.alias}"
style="font-weight: bold; font-size: 90%" />
</p:panelGrid>
</p:panelGrid>
</f:facet>
<p:panelGrid columns="2" layout="grid">
<p:outputPanel>
<h:panelGrid columns="2">
<h:outputText value="CPU (utilizada):" />
<h:outputText value="#{node.cpuUsed}" />
<h:outputText value="RAM (utilizada):" />
<h:outputText value="#{node.ramUsed}" />
</h:panelGrid>
</p:outputPanel>
<p:outputPanel>
<h:panelGrid columns="2">
<h:outputText value="ETH1 (entrada):" />
<h:outputText value="#{node.net1in}" />
<h:outputText value="ETH1 (salida):" />
<h:outputText value="#{node.net1out}" />
</h:panelGrid>
</p:outputPanel>
</p:panelGrid>
</p:panel>
</p:dataGrid>
</h:form>
答案 0 :(得分:0)
最后,我找到了一种更新组件而不会失去面板切换状态的方法... bean方法更新了面板使用的数据数组,而poll只更新文本(需要在浏览器中检查)找到组件使用的类)
在poll标签中,您可以告诉Primefaces仅更新某些组件类......它被称为&#34; PrimeFaces选择器&#34;我在stackoverflow中的问题中找到了它
yaml.YAMLToJSON
Understanding PrimeFaces process/update and JSF f:ajax execute/render attributes
<div class="ui-panelgrid-cell ui-g-12 ui-md-6"><div id="tabViewForm:tabView:server_node_form:nodeDataGrid:0:j_idt70" class="ui-outputpanel ui-widget">