更新p:datatable并保留rowexpansion状态

lea*_*afy 6 datatable jsf primefaces

我有一个带有rowexpansion的数据表,里面有另一个数据表.结构如下:

 <p:dataTable id="machine-table" value=#{machinePage.machines} var="machine" styleClass="machine-table">          
  <p:column style="width:16px">
    <p:rowToggler  rendered="#{machine.projectsInMachine.size() > 0}" />
  </p:column> 
  some other machine column here...
  <p:rowExpansion >
    <p:dataTable value="#{machine.projectsInMachine}" var="project" styleClass="project-subtable"  >        
        some project column here
    </p:dataTable>
  </p:rowExpansion>
Run Code Online (Sandbox Code Playgroud)

然后我有一个拉动,每隔几分钟就会检索机器和项目数据,有什么方法可以更新它并保留当前的扩展状态?因为目前它将始终关闭所有扩展(我使用下面的poll更新整个表).

<p:poll widgetVar="machinesPoll"
        interval="60" listener="#{machinePage.prepare()}"
        async="true" global="false"
        autoStart="true" process="@this"
        update="machine-table" partialSubmit="true"
        ignoreAutoUpdate="true" />
Run Code Online (Sandbox Code Playgroud)

我找不到任何有关我可以保存在bean中的扩展状态的参考.我使用:primefaces 6.0,JSF 2.2.13