2010-03-26 64 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”字段是一个好主意。