如何以编程方式设置对af:selectManyCheckbox项目的选择?

我有一个旧的ADF版本,我尝试在此列表中创建一个项目,如果单击它,它将选择所有剩余的项目:

<af:selectManyCheckbox value="#{usersByRoleFBB.selectedRolesId}"
                       valueChangeListener="#{usersByRoleFBB.listChanged}"
                       required="true" showRequired="true" label="Роли: ">
  <f:selectItems value="#{usersByRoleFBB.listRoleItems}" />
</af:selectManyCheckbox>


我的java课:

private List<SelectItem> listRoleItems;
private Long[] selectedRolesId;

public void listChanged(ValueChangeEvent event) {
    Long oldValue = (Long) event.getOldValue();
    Long newValue = (Long) event.getNewValue();
    if (oldValue == -1 || newValue == -1) {
        if (newValue == -1L) {
            for (SelectItem selectItem : listRoleItems) {
                selectItem.setValue(true);
            }
        }
        if (oldValue == -1L) {
            for (SelectItem selectItem : listRoleItems) {
                selectItem.setValue(false);
            }
        }
    }
}

最佳答案

在ADF 11g中,可以通过更改selectedRolesId列表的内容以编程方式更改选择。我认为在旧版本中也应如此。

关于java - 以编程方式选择selectManyCheckbox组件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8123172/

10-12 18:24