3

ラベルとselectOneMenuを持つ2つの列を持つデータテーブルを使用しています。

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>
4

1 に答える 1

2

change 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 メソッドに渡すことができます。

于 2013-12-27T16:29:02.970 に答える