2013-06-20 74 views
0

我正在尋找一種方法,在提交表單後,從輔助bean中更改primefaces命令按鈕的更新屬性。我想實現的是根據支持bean方法的結果更新組件ID。更改Primefaces中的更新屬性dynamicaly

例如,我想用命令按鈕更新表單和咆哮消息,現在如果支持bean發生了一些錯誤(不是驗證錯誤),我需要只更新咆哮消息和表單不應該更新。

<p:commandButton value="Finish Editing" 
     action="#{editBean.finish}" icon="ui-icon-check" 
     style="width:200px;margin-left:60px;" update=":studentEditForm :messageForm:applyMessages" /> 

回答

3

您可以通過RequestContext#update()使用編程API。

public void finish() { 
    // ... 

    if (someCondition) { 
     RequestContext.getCurrentInstance().update("someClientId"); 
    } else { 
     RequestContext.getCurrentInstance().update("otherClientId"); 
    } 
}    

不要忘記從命令按鈕中刪除update屬性。

+0

你好BalusC,這很好用。 – Krishna

+0

不客氣。 – BalusC

-1

更改此

<p:commandButton value="Finish Editing" 
     action="#{editBean.finish}" icon="ui-icon-check" 
     style="width:200px;margin-left:60px;" update=":studentEditForm :messageForm:applyMessages" /> 

<p:commandButton value="Finish Editing" 
     action="#{editBean.finish}" icon="ui-icon-check" 
     style="width:200px;margin-left:60px;" update="#{editBean.updateString}" /> 

現在,你將必須根據需要更新此字符串EditBean類。

+0

你好Makky,它沒有工作,無論表單加載時初始化的變量將保留更新參數的值。即使我在表單提交時試圖從支持bean中更改該字符串,它從未反映在commandButton的「更新」屬性中。 – Krishna

+0

什麼是您的managedbean範圍> – Makky

+0

Downvoters關心評論。有些人就是在他們心中。 – Makky