以编程方式选择 selectManyCheckbox 组件
如何以编程方式设置 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);
}
}
}
}
How can I set selection of an af:selectManyCheckbox
item programmatically?
I have an old ADF version and I try to create an item in this list, which selects all remaining items if I click it:
<af:selectManyCheckbox value="#{usersByRoleFBB.selectedRolesId}"
valueChangeListener="#{usersByRoleFBB.listChanged}"
required="true" showRequired="true" label="Роли: ">
<f:selectItems value="#{usersByRoleFBB.listRoleItems}" />
</af:selectManyCheckbox>
My java class:
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);
}
}
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 ADF 11g 中,您可以通过更改 selectedRolesId 列表的内容以编程方式更改选择。我认为同样的功能也应该适用于旧版本。
In ADF 11g you can programatically change the selection by changing the content of selectedRolesId list. I think the same should work in older versions too.