2013-02-14 50 views
3

我正在使用具有兩列的數據表,它們將有一個標籤和一個selectOneMenu。setPropertyActionListener與h:selectOneMenu

我需要動態地顯示selectOneMenu列表,爲此我需要在bean中設置級別ID。 在commandbutton/commandLink中,我們可以使用f:setPropertyActionListener幫助設置值。 我只是想知道如何設置值,而我使用selectonemenu。 任何幫助,將不勝感激。

<p:dataTable style="width:750px;" id="inResultTable" var="result" 
    value="#{RequestBean.independentFields}"> 
    <p:column> 
    <f:facet name="header"> 
    <h:outputText value=" " /> 
    </f:facet> 
    <h:outputText value="#{result.field_label}" /> 
    </p:column> 
    <p:column> 
    <f:facet name="header"> 
    <h:outputText value="" /> 
    </f:facet> 
    <ui:repeat value="#{RequestBean.independentFields}" var="itm"> 
    <h:selectOneMenu value="#{RequestBean.field1Value}" 
    rendered="#{result.level_id==itm.level_id}"> 
    <f:selectItems value="#{RequestBean.indField}" /> 
    </h:selectOneMenu> 
    <f:setPropertyActionListener target="#{RequestBean.level_id}" 
    value="#{itm.level_id}"></f:setPropertyActionListener> 
    </ui:repeat> 
    </p:column> 
    </p:dataTable> 

回答

1

您可以使用更改ajax事件。

當您的selectOneMenu中的某個項目會發生變化時,ajax會調用Bean中的某個方法。

像這樣:

<h:selectOneMenu value="#{RequestBean.field1Value}" 
    rendered="#{result.level_id==itm.level_id}"> 
    <f:selectItems value="#{RequestBean.indField}" /> 
    <f:ajax event="change" listener="#{yourBean.yourMethodToChangeSomeValue}" /> 
</h:selectOneMenu> 

,並在你的方法,你可以使用fieldValue方法的值或參數XHTML傳遞到另一個Bean方法在你身上。

相關問題