2010-03-26 22 views
0

我在錯誤地刷新頁面時遇到了JSF/ADF/PPR問題。我有一個selectManyCheckBox和5個選項,其中一個選項是'All'。如果用戶檢查該複選框,我應該檢查所有其他人。JSF/ADF/PPR無法按預期刷新頁面

<h:panelGrid styleClass="myBox leftAligned" id="applyChangesBox"> 
      <af:selectManyCheckbox id="changesCheckedBox" 
        autoSubmit="true" label="Hello: " 
        value="#{updateForm.applyChangesList}" 
        valueChangeListener="#{updateForm.testValueChanged}"> 
       <af:selectItem value="A" label="All Changes"/> 
       <af:selectItem value="R" label="Residential Address"/> 
       <af:selectItem value="M" label="Mailing Address"/> 
       <af:selectItem value="P" label="Personal Phone/Fax Numbers"/> 
       <af:selectItem value="E" label="Personal Email Addresses"/> 
      </af:selectManyCheckbox> 
      <af:outputText value="#{updateForm.testValue}" partialTriggers="changesCheckedBox"/> 
      </h:panelGrid> 

我使用valueChangeListener,這樣我可以看到我的豆更新,並正常打印出來,但我也不會刷新頁面,並檢查所有其他複選框,如果我需要。

回答

0

嘗試以下操作:

  1. 不要使用valueChangeListener。將您的邏輯移動到您的bean上的setApplyChangesList()方法。
  2. partialTriggers="changesCheckedBox"添加到選擇的一個選項中。
  3. OR與設置在其上的partialTriggers屬性的ADF部件&取代<h:panelGrid/>使得它不在selectManyCheckbox & outputText

OR

更換selectManyCheckboxselectManyList &使用selectAllVisible屬性這似乎是做你想做的。

這些新的備忘錄非常棒! http://www.oracle.com/technology/products/adf/adffaces/11/doc/cheatsheet/lovs.html

+0

這還不是我正在看的,但它的工作原理。 – 2010-07-22 17:55:21

0

我知道這個問題很老,但也許其他人仍然有這個問題。 最好將partialTrigger放在父級上,而不是放在輸出本身上。這樣,父面板和輸出一起重新繪製。 其次,設置應對觸發器響應的組件的「id」字段是一個好主意。