2016-09-07 20 views
0

我有一個P此工作按鈕:dataTable的如何使用f:setPropertyActionListener和p:splitButton?

<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

不知道這是否是有效的所有,但你嘗試'p:menuitem'標籤內的'setPropertyActionListener'嗎? – Apostolos

+0

我試過了,但沒有奏效,但我失去了「更新」 - 現在它可以工作。但是,selectedTx並不總是更新,但我很難找出原因。到目前爲止,我無法一直重現它。 – Tim

回答

0

解決的辦法是添加菜單項內的setPropertyActionListener(如阿波斯托建議),以及數據表需要更新(而不是僅僅的對話框):

<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> 
相關問題