我正在使用Primefaces 5.1,我有一个仪表板,我可以将组件放到它上面。
但是,当我放下一个组件时,我想要渲染一个不同的组件。
这是我的仪表板,以及克隆并放到仪表板上的面板组件。
<p:dashboard id="board" model="#{dashboardBean.model}" binding="#{dashboardBean.dashboard}">
<p:ajax event="reorder" listener="#{dashboardBean.handleReorder}" update="msgs" />
</p:dashboard>
<p:panel id="draggable">
<h:outputLabel value="Drag Panel Into Dashboard"></h:outputLabel>
</p:panel>
<p:draggable for="draggable" helper="clone" dashboard="board"/>
现在我可以触发捕获'reorder'事件并更改'model'以将其替换为java端的正确组件。但此时仪表板不会重新渲染。
我可以添加一个命令按钮来触发重新渲染......
<h:commandButton value="Refresh" action="#{dashboardManagedBean.refreshChart}"/>
但我希望这是自动发生的。
请有人提供一些建议吗。
答案 0 :(得分:3)
(评论已提升回答)如果您使用此handleReorder()
从RequestContext.getCurrentInstance().update("foo:bar")
刷新组件会怎样?