【问题标题】:How to make checkboxes display checked on display如何使复选框显示在显示屏上选中
【发布时间】:2016-06-27 13:50:13
【问题描述】:

我正在使用以下指南在我的工具中实现许多复选框: http://www.primefaces.org/showcase/ui/input/manyCheckbox.xhtml

我已经成功地做到了,但我想要发生的是,如果用户具有该角色,我希望复选框已经在显示上打勾,如果没有,则不选中。想法是,管理员可以选中/取消选中他们希望用户拥有的角色,以及他们已经选中的角色。

这是我迄今为止尝试过的:

<p:selectManyCheckbox id="roles" value="#{usersView.selectedRoles}" layout="grid" columns="3">
    <f:selectItems value="#{rolesView.roles}" var="role" itemLabel="#{role.name}" itemValue="#{role.name}" />
</p:selectManyCheckbox>

在我的usersView 中,selectedRoles 只是用户拥有的所有角色的ArrayList

感谢任何帮助。

【问题讨论】:

  • 只需设置selectedRoles?
  • 设置了'selectedRoles',调试时我可以看到列表包含2个元素,这些元素与我要检查的两个复选框有关,但它们仍然未选中,我正在努力发现为什么。

标签: jsf primefaces initialization selectmanycheckbox


【解决方案1】:

如果您有 selectedRolesitemValue 在同一订单上一一匹配,则 Bingo 您的复选框将被自动选中

例如:

selectedRoles={'Mark','Jack'}

并且在你的#{rolesView.roles} 中如果你有相同的#{'Mark','Jack'}#{role.name} 在相同的顺序

然后简单地说,您有自己的自动选中复选框。

【讨论】:

  • 谢谢你,这让我明白了一点,让我意识到我在做一些愚蠢的事情:)
  • @James 一点也不,JSF第一次很棘手,但到时候她会教你变魔术:)
  • 让我猜猜,你用整个 Role 对象而不是 String 名称填充它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-03
  • 1970-01-01
相关资源
最近更新 更多