2015-02-10 20 views
0

嗨,大家好,我正在嘗試一些對於我來說完全陌生的用ADF做GUI的東西。這是我第一次使用ADF的經驗,我真的不知道如何做這樣的事情:在SelectOneChoice中禁用selectItem

我有幾個SelectOneChoice(讓我們稱它們爲combobox從1到6)與一些selectItems(我們稱它們爲選項:Blank,Slow ,Medium,Fast)

現在,我必須確定,如果我選擇組合框1 - 空白。所有其他人有4個選項可用。

然後,我將踩上combobox 2 - Medium。在這種情況下,從3到6的組合框不能具有快速值,因爲它不能比「上方」的組合框快。

對於所有其他組合框,如果選擇「慢」,則所有下方的組合必須只有「慢」或「空白」選項。

我該怎麼做?

這裏就是我tryed:

af:selectOneChoice id="soc2" 
binding="#{backingBeanScope.backing_Setup.soc2}" 
autoSubmit="true"                         

    valueChangeListener="#{backingBeanScope.backing_Setup.disableLowerLevelsA}"> 
<af:selectItem 
id="si48" 
binding="#{backingBeanScope.backing_Setup.si48}"/> 
<af:selectItem label="Slow" 
value="slow" id="si3"                          binding="#{backingBeanScope.backing_Setup.si3}"/>                      <af:selectItem label="Medium"                          value="medium"                          id="si5"                          binding="#{backingBeanScope.backing_Setup.si5}"/>                      <af:selectItem label="Fast"                          value="fast" id="si4" 
binding="#{backingBeanScope.backing_Setup.si4}"/> 
</af:selectOneChoice> 
<af:selectOneChoice id="soc5" 
binding="#{backingBeanScope.backing_Setup.soc5}" 
partialTriggers="soc2"> 
<af:selectItem                          id="si49"                          binding="#{backingBeanScope.backing_Setup.si49}"/>                      <af:selectItem label="Slow"                          value="slow"                          id="si12"                          binding="#{backingBeanScope.backing_Setup.si12}"/>                      <af:selectItem label="Medium"                          value="medium"                          id="si14"    

                        binding="#{backingBeanScope.backing_Setup.si14}"/>                      <af:selectItem label="Fast"                          value="fast"                          id="si13"                          binding="#{backingBeanScope.backing_Setup.si13}"/>                     </af:selectOneChoice> 

等等......我已經添加了觸發器和監聽到各自的連擊。但是,當我更改第一個組合框的內容(即:中等)時,其他組件將保持所有選項可見。 我該如何解決這個問題?

回答

0

在第一SelectOneChoice的valueChangeListener,得到Viewcriteria編程第二SelectOneChoice,並確保以發送的ID列(未選定的值)第一SelectOneChoice作爲綁定變量的。 同時設置viewcriteria接受這個綁定變量,並假設ID按照升序排序,執行less than or equal to的查詢。

//To get VC and execute it 
    ViewObjectImpl vo = getEmployeesView(); 
    ViewCriteria vc = vo.getViewCriteria("findEmployeeVC"); 
    vo.applyViewCriteria(vc); 
    vo.setNamedWhereClauseParam("pEmployeeId", employeeId); 
    vo.executeQuery(); 

不要忘了選擇第一個SelectOneChoice之後,PPR第二個SelectOneChoice刷新LOV。