2

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);
            }
        }
    }
}
4

1 に答える 1

0

ADF 11gでは、selectedRolesIdリストのコンテンツを変更することで、プログラムで選択を変更できます。同じことが古いバージョンでも機能するはずだと思います。

于 2011-11-15T15:09:30.710 に答える