我已经浏览了primefaces的文档,遗憾的是没有选项可以一次性选择p:selectCheckboxMenu
组件的所有选项,就像使用Javascript一样。
有人可以建议如何使用Javascript或使用Backing Bean来完成它吗?
答案 0 :(得分:1)
使用与通常方式的可用值相同的值来预设其值(就像对每个其他JSF输入组件所做的那样)。
基于PrimeFaces showcase example of <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
已在bean的构造函数中准备好。当然,这可以基于Map movies
更优雅地完成。这只是给你一个想法。
使用JavaScript执行此操作是不必要的。
答案 1 :(得分:0)
<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>
试试这个