如何使用f:setPropertyActionListener与p:splitButton?

时间:2016-09-07 07:25:21

标签: primefaces

我在p:dataTable

中有这个工作按钮
<p:commandButton update=":dialog" oncomplete="PF('dialog').show()" title="Do something">
    <f:setPropertyActionListener value="#{transaction}" target="#{transactionModel.selectedTx}" />
</p:commandButton>

它在模型中设置selectedTx,以便我可以在对话框中使用它。

现在我想为我的按钮添加新功能,所以我选择了p:splitButton

<p:splitButton update=":dialog" oncomplete="PF('dialog').show()" title="Do something">
    <f:setPropertyActionListener value="#{transaction}" target="#{transactionModel.selectedTx}" />
    <p:menuitem value="Do something else" oncomplete="PF('otherDialog').show()" update=":otherDialog" />
</p:splitButton>

当我使用新按钮时,未设置selectedTx 。只有第一个按钮有效。

如何在点击新按钮时更新模型中的属性?

1 个答案:

答案 0 :(得分:0)

解决方案是在menuitem中添加setPropertyActionListener(如Apostolos建议的那样),并且需要更新数据表(而不仅仅是对话框):

<p:splitButton update="datatable :dialog" oncomplete="PF('dialog').show()" title="Do something">
    <f:setPropertyActionListener value="#{transaction}" target="#{transactionModel.selectedTx}" />

    <p:menuitem value="Do something else" oncomplete="PF('otherDialog').show()" update="datatable :otherDialog">
        <f:setPropertyActionListener value="#{transaction}" target="#{transactionModel.selectedTx}" />
    </p:menuitem>
</p:splitButton>