0

我有一个多选列表框,根据用户选择的元素数量,我必须显示相同数量的复选框。我正在使用 jsf 和 primefaces /spring webflow。我怎么能这样做?有什么例子吗?我必须制作一个复选框,允许一键检查所有生成的复选框。

4

1 回答 1

1

我有一个多选列表框

因此,a<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");
}

并且取决于用户将选择多少元素,我必须显示相同数量的复选框

因此,只需根据 a的值预填充<f:selectItems>a 。<h:selectManyCheckbox><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>

有类似的东西

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

我正在使用 jsf 和 primefaces /spring webflow。我怎么能这样做?有什么例子吗?

我相信上述琐碎的例子就足够了。对于 PrimeFaces,只需替换<h:xxx><p:xxx>. 然而,我不知道 Spring Webflow 是如何在其中发挥作用的,因为我从未使用过它。


我必须制作一个复选框,允许一键检查所有生成的复选框。

这是留给你的练习。提示:确保availableCheckboxItems包含所需的值,具体取决于<h:selectBooleanCheckbox>应该代表“切换所选项目”的当前值。

于 2012-01-17T03:09:26.190 回答