Primefaces,当我将组件拖放到仪表板上时,我想触发操作

时间:2014-11-27 15:42:56

标签: jsf-2 primefaces

我正在使用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}"/>

但我希望这是自动发生的。

请有人提供一些建议吗。

What I see

1 个答案:

答案 0 :(得分:3)

(评论已提升回答)如果您使用此handleReorder()RequestContext.getCurrentInstance().update("foo:bar")刷新组件会怎样?