выбрать / отменить выбор всех элементов за один раз в простом <p: selectCheckboxMenu>? - PullRequest
1 голос
/ 01 апреля 2012

Я просмотрел документацию по простым лицам и, к сожалению, нет возможности выбрать все параметры компонента p:selectCheckboxMenu за один раз, как вы можете использовать Javascript.

Кто-нибудь может подсказать, как это можно сделать, используя Javascript или Backing Bean?

Ответы [ 2 ]

1 голос
/ 02 апреля 2012

Просто установите для его значения то же значение, что и для доступных значений, обычным способом (как и для любого другого входного компонента JSF).

На основе примера демонстрации PrimeFaces <p:selectCheckboxMenu>, вот как это должно выглядеть:

package org.primefaces.examples.view;

import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FormBean implements Serializable {

    private List<String> selectedMovies;

    private Map<String,String> movies;

    public FormBean() {
        movies = new HashMap<String, String>();
        movies.put("Scarface", "Scarface");
        movies.put("Goodfellas", "Goodfellas");
        movies.put("Godfather", "Godfather");
        movies.put("Carlito's Way", "Carlito's Way");

        selectedMovies = new ArrayList<String>();
        selectedMovies.add("Scarface");
        selectedMovies.add("Goodfellas");
        selectedMovies.add("Godfather");
        selectedMovies.add("Carlito's Way");
    }

    public List<String> getSelectedMovies() {
        return selectedMovies;
    }
    public void setSelectedMovies(List<String> selectedMovies) {
        this.selectedMovies = selectedMovies;
    }

    public Map<String, String> getMovies() {
        return movies;
    }
}

Обратите внимание, что selectedMovies был подготовлен в конструкторе компонента.Конечно, это можно сделать более элегантно на основе Map movies.Это просто чтобы дать вам идею.

Делать это с помощью JavaScript не нужно.

0 голосов
/ 01 апреля 2012
<label><input type="checkbox" name="" id="" class="someclass-selectall"/>choose all</label><br/>

<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>
<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>
<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>
<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>
<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>
<label><input type="checkbox" name="" id="" class="someclass"/>some text</label><br/>

<script type="text/javascript" src="../share/libs/jquery-1.7.min.js"></script>

<script type="text/javascript">
 // use jquery
 $(".someclass-selectall").click(function  (  ) {
    $("input:checkbox.someclass").attr ( "checked", this.checked );
 })
</script>

попробуйте

...