我有一个多选列表框,根据用户选择的元素数量,我必须显示相同数量的复选框。我正在使用jsf和primefaces / spring webflow。我怎么能这样做?任何例子? 我必须创建一个复选框,允许单击一下检查所有生成的复选框。
答案 0 :(得分:1)
我有一个多选列表框
因此,<h:selectManyListbox>
具有固定的<f:selectItems>
值。
<h:selectManyListbox id="listbox" value="#{bean.selectedListboxItems}">
<f:selectItems value="#{bean.availableListboxItems}" />
</h:selectManyListbox>
有类似的东西:
private List<String> availableListboxItems;
private List<String> selectedListboxItems;
@PostConstruct
public void init() {
availableListboxItems = new ArrayList<String>();
availableListboxItems.add("menu item 1");
availableListboxItems.add("menu item 2");
availableListboxItems.add("menu item 3");
}
并且根据用户选择的元素数量,我必须显示相同数量的复选框
因此,只需根据<f:selectItems>
的值预填充<h:selectManyCheckbox>
的{{1}}。
<h:selectManyListbox>
类似
<h:commandButton value="Generate checkboxes">
<f:ajax execute="listbox" listener="#{bean.generateCheckboxes}" render="checkboxes" />
</h:commandButton>
<h:selectManyCheckbox id="checkboxes" value="#{bean.selectedCheckboxItems}">
<f:selectItems value="#{bean.availableCheckboxItems}" />
</h:selectManyCheckbox>
我正在使用jsf和primefaces / spring webflow。我怎么能这样做?任何例子?
我相信以上微不足道的例子就足够了。对于PrimeFaces,只需将private List<String> availableCheckboxItems;
private List<String> selectedCheckboxItems;
public void generateCheckboxes() {
availableCheckboxItems = new ArrayList<String>();
for (int i = 1; i <= selectedListboxItems.size(); i++) {
availableCheckboxItems.add("checkbox item " + i);
}
}
替换为<h:xxx>
即可。但我不知道Spring Webflow是如何在这里发挥作用的,因为我从未使用它。
我必须创建一个复选框,只需点击一下即可检查所有生成的复选框。
这是留给你的练习。提示:请确保<p:xxx>
包含所需的值,具体取决于应代表“切换所选项目”的availableCheckboxItems
的当前值。