【问题标题】:select/unselect all elements in one go in primefaces <p:selectCheckboxMenu>?在 primefaces <p:selectCheckboxMenu> 中一次性选择/取消选择所有元素?
【发布时间】:2012-04-01 13:09:13
【问题描述】:

我浏览了 primefaces 的文档,遗憾的是没有选项可以像使用 Javascript 一样一次性选择 p:selectCheckboxMenu 组件的所有选项。

谁能建议如何使用 Javascript 或使用 Backing Bean 来完成?

【问题讨论】:

    标签: javascript jsf-2 primefaces


    【解决方案1】:

    只需按照通常的方式将其值预设为与可用值相同的值(就像您对每个其他 JSF 输入组件所做的那样)。

    基于PrimeFaces showcase example of &lt;p:selectCheckboxMenu&gt;,它应该是这样的:

    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 进行此操作。

    【讨论】:

      【解决方案2】:
      <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>
      

      试试这个

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-06
        • 2012-09-09
        • 2016-11-10
        • 1970-01-01
        • 2020-03-26
        • 1970-01-01
        相关资源
        最近更新 更多