2016-12-09 13 views
0

私のjsfページに3つのドロップダウンがあります。1つのh:selectOneMenuドロップダウンタグから値を選択すると、別のドロップダウン値の値が削除されます

  1. 到着ゾーン
  2. 出発ゾーン
  3. クーポンの種類

それは私のページで同じ順序で存在しています。

到着ゾーンまたは出発ゾーンの値を選択してから、伝票ゾーンの値を選択すると、1と2の値がデフォルト値に変更されます。

ここに私のコードです。

<h:column rendered="#{(fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR AIRPORT') or (fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR ZONE')}"> 
    <h:outputText styleClass="head-table" value="Departing Zone"></h:outputText> 
    <h:outputText styleClass="mandatory" value="*" /> 
</h:column> 
<h:column rendered="#{(fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR AIRPORT') or (fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR ZONE')}"> 
    <h:selectOneMenu value="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.bpmAppFltIdentity.depZone}"> 
     <f:selectItems value="#{fplusRulesHandler.fplusRulesBean.arrDepZoneList}"></f:selectItems> 
    </h:selectOneMenu> 
</h:column> 

<h:column rendered="#{(fplusRulesHandler.fplusRulesBean.searchBased eq 'ARR ZONE/DEP AIRPORT') or (fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR ZONE')}"> 
    <h:outputText styleClass="head-table" value="Arrival Zone"></h:outputText> 
    <h:outputText styleClass="mandatory" value="*" /> 
</h:column> 
<h:column rendered="#{(fplusRulesHandler.fplusRulesBean.searchBased eq 'ARR ZONE/DEP AIRPORT') or (fplusRulesHandler.fplusRulesBean.searchBased eq 'DEP ZONE/ARR ZONE')}"> 
    <h:selectOneMenu value="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.bpmAppFltIdentity.arrZone}"> 
     <f:selectItems value="#{fplusRulesHandler.fplusRulesBean.arrDepZoneList}"></f:selectItems> 
    </h:selectOneMenu> 
</h:column> 

<h:column> 
    <h:outputLabel styleClass="head-table" value="Voucher Type"></h:outputLabel> 
</h:column> 
<h:column> 
    <h:selectOneMenu value="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.voucherType}"> 
     <f:selectItem itemLabel="LONG HAUL UPGRADE" itemValue="LONG HUAL UPGRADE" /> 
     <f:selectItem itemLabel="EUROPE UPGRADE" itemValue="EUROPE UPGRADE" /> 
     <f:ajax event="change" render="fplusAdd"></f:ajax> 
    </h:selectOneMenu> 
</h:column> 
<h:column rendered="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.voucherType == 'EUROPE UPGRADE'}"> 
    <h:outputLabel styleClass="head-table" value="#{message['FplusRules.AddRules.Label.RedemptionPointDiscount']}"></h:outputLabel> 
</h:column> 

<h:column rendered="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.voucherType == 'EUROPE UPGRADE'}"> 
    <h:inputText id="redemptionDiscount" value="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.redemptionPointsDisc}" validatorMessage="#{errorMessage['redemptionPointDiscountPositive']}" 
converterMessage="#{errorMessage['redemptionPointDiscountPositive']}"> 
     <f:convertNumber integerOnly="true"></f:convertNumber> 
     <f:validateLongRange minimum="0" /> 
    </h:inputText> 
    <h:message for="redemptionDiscount" errorStyle="padding-left:10px;color :red" /> 
</h:column> 
+0

fplusAddとは – Nurjan

+0

fplusA dd is panelGrid Id –

+0

のすべてに対してを設定しようとしましたか? selectOneMenusがお互いにリセットされるようです - あなたが何らかの値を選択すると、その中のデータがサーバーに自動的に送られることはありません。 – Nurjan

答えて

1

Nurzhanは、あなたが最初の2つの<h:selectOneMenu>タグに任意の<f:ajax>タグが付属していないと指摘されているように、ユーザがそれらのmenuesに彼の選択を変更したときに何のAjaxのイベントが発生していない取得されます。つまり、モデルの設定者は呼び出されません。 しかし、3番目の<h:selectOneMenu>には、すべてのmenuesを含むタグのIDを参照するレンダリング属性(タグが付いています)が添付されています。レンダリング応答フェーズでは、 'fplusAdd'内のすべてのコンポーネントのゲッターが呼び出され、menuesは元の値に戻されます。

<h:selectOneMenu value="#{fplusRulesHandler.fplusRulesBean.fpuFlightRules.voucherType}"> 
     <f:selectItem itemLabel="LONG HAUL UPGRADE" itemValue="LONG HUAL UPGRADE" /> 
     <f:selectItem itemLabel="EUROPE UPGRADE" itemValue="EUROPE UPGRADE" /> 
     <f:ajax event="change" execute="fplusAdd" render="fplusAdd"></f:ajax> 
</h:selectOneMenu> 
:どちらかという問題を解決するモデルが各userselectionで更新または単に同じように、同様の属性を実行 にAJAXタグでそれらを参照しますように(だけでなく最初menuesにAJAXのタグを追加するには

これにより、最初の2つのmenuesも処理されます( 'fplusAdd'の中にある他のものと同様に)、モデルのセッターが呼び出されます。execute属性を明示的に追加しないと、デフォルト値は@これはコンポーネント自体が処理されていることを意味します(対応するセッターが呼び出されます)

関連する問題