`

在JSF dataTable中实现selecteBooleanCheckbox全选效果.

阅读更多

前端页面部分代码:

 

<h:commandLink action="#{ADManagementAuditListPMG.disAndselectAll(true)}" value="全部选中"/>    
            <h:commandLink action="#{ADManagementAuditListPMG.disAndselectAll(false)}" value="全部取消"/>   
  
<h:dataTable var="manager" value="#{ADManagementAuditListPMG.dataModel}">   
                    <h:column>   
                        <f:facet name="header"><h:outputText value="选择" /></f:facet>   
                        <h:selectBooleanCheckbox value="#{manager.selected}" disabled="#{!RenderController.av.getAccessRight('PassButton',row.userid)}"  id="id#{manager.selected}">   
                            <f:ajax event="change" listener="#{manager.updateSelected}"/>//自定义选择时使用ajax更新selected状态   
                        </h:selectBooleanCheckbox>   
                    </h:column>   
</h:dataTable>  

 

ManagerBean中的全选方法:

public void disAndselectAll(boolean selected) {   
                List<MemberDataAuditDTO> userList = (List<MemberDataAuditDTO>) dataModel.getWrappedData();   
                for (MemberDataAuditDTO user : userList) {   
                        user.setSelected(selected);   
                }   
 }  
 

 

MemberDataAuditDTO中部分代码:

public class MemberDataAuditDTO implements Serializable {   
  
    private static final long serialVersionUID = 1L;   
       
    private boolean selected;   
  
    public MemberDataAuditDTO() {   
    }   
  
    public boolean getSelected() {   
        return selected;   
    }   
  
    public void setSelected(boolean selected) {   
        this.selected = selected;   
    }   
    //ajax调用该方法更新selected状态   
    public void updateSelected(){   
        System.out.println("selected"+selected);   
         if(!selected){   
            selected = true;   
         }else{;   
         }   
    }  

 

以上全选、多选实现使用了纯JSF技术,经过两天的验证发现点问题,以及可以简化的解决方法。

问题:因为复选框使用了权限设置,没有权限的用户登录复选框置灰,不能选择,但使用JSF全选的方法,

disable=true,复选框置灰只是显示而已,全选依然能够选中该复选框,也就是说失去了权限设置的意

义。

修改后的代码如下:

全选JS代码

 

/**  
 * 复选框全选/全部取消对应的JS方法  
 * @param formName 表单名称,  
 * @param dtName dataTable名称,  
 * @param checked 是否选中,true为选中,false为取消  
 */  
function SetCheckedStatus(formName,dtName,checked)   
{   
    var oTableName = formName+':'+dtName;   
    var oTable=document.getElementById(oTableName);   
    if(oTable != null)   
    {   
        for(j=1;j<oTable.rows.length;j++)   
        {   
            oTable.rows[j].cells[0].childNodes[0].checked=checked;//选中复选框   
            oTable.rows[j].cells[0].childNodes[0].onchange();//触发复选框中onchange事件,进行状态的提交   
        }   
    }   
}  

 

 

JSF代码:

<a href="#" mce_href="#" onclick="SetCheckedStatus('form1','dt1',true);">全部选中</a>   
            <a href="#" mce_href="#" onclick="SetCheckedStatus('form1','dt1',false);">全部取消</a>   
  
<h:dataTable id="dt1" var="manager" value="#{ADManagementAuditListPMG.dataModel}">   
                    <h:column>   
                        <f:facet name="header"><h:outputText value="选择" /></f:facet>   
                        <h:selectBooleanCheckbox value="#{manager.selected}"  disabled="#{!RenderController.av.getAccessRight('PassButton',row.userid)}"  onchange="submit();">   
                        </h:selectBooleanCheckbox>   
                    </h:column>  

 

 

此方法只需在DTO中建立相应的 boolean selected; 字段即可。

public class MemberDataAuditDTO implements Serializable {   
  
    private static final long serialVersionUID = 1L;   
       
    private boolean selected;   
  
    public MemberDataAuditDTO() {   
    }   
  
    public boolean getSelected() {   
        return selected;   
    }   
  
    public void setSelected(boolean selected) {   
        this.selected = selected;   
    }   
}

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiao000_000/archive/2010/03/24/5411728.aspx#

分享到:
评论

相关推荐

    JSF中使用BooleanCheckbox实现全选功能

    在实现全选功能时,我们通常会有一个主复选框,它的状态(选中或未选中)会影响到页面上所有关联的复选框。当主复选框被选中时,所有子复选框都会被选中;反之,如果主复选框未被选中,则所有子复选框都会被取消选中...

    jsf-api-2.0.3.jar.zip_jsf api_jsf jar包_jsf-api-2.0.3.jar_jsf-api

    在部署包含JSF功能的Web应用到Tomcat时,确保所有必要的库,如`jsf-api.jar`(通常与`jsf-impl.jar`一起使用,提供JSF实现),被正确地添加到Tomcat的类路径(ClassPath)中是至关重要的。如果缺失这些库,应用程序...

    jsf 基础教程......

    在本教程中,我们将深入探讨JSF的核心概念、基本组件以及如何在实际项目中应用JSF。 1. **JSF框架概述** JSF框架的核心目标是简化Java Web开发,通过提供声明式编程模型来减少代码量。它将UI组件、业务逻辑和数据...

    jsf相关jar包 jsf-api.jar jsf-impl.jar

    JSF的核心组件包括`jsf-api.jar`和`jsf-impl.jar`,这两个jar包在给定的压缩文件中占有重要位置。 1. **jsf-api.jar**: `jsf-api.jar`包含了JSF框架的公共API,它是开发者编写JSF应用时所依赖的接口和类。这些...

    jsf2.0 dataTable单行修改例子

    在JSF(JavaServer Faces)2.0中,`dataTable`是一个非常重要的组件,用于展示动态数据表。这个例子展示了如何实现一个具有单行编辑功能的`dataTable`,让用户能够直接在表格中编辑数据并保存更改。下面我们将深入...

    JSF.2.0.Cookbook.Jun.2010

    **标题**:“JSF.2.0.Cookbook.Jun.2010”表明这是一本关于JavaServer Faces (JSF) 2.0版本的技术书籍,发布于2010年6月。 **描述**:“Packtpub.JSF.2.0.Cookbook.Jun.2010 需要研究JSF的可以參考看看 英文內容” ...

    JSF开发包:commons-beanutils.jar+commons-collections.jar+commons-digester.jar+jsf-api.jar+jsf-impl.jar+jstl.jar+standard.jar

    JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省时间做点有意义的事情呢?呵呵。。。已在附件供大家下载,若是你所需要的东西,那就请投个票、说句鼓励的话,我就满足了。 ...

    jsf-impl-1.2_15.jar

    这是jsf-impl-1.2_15.jar,为了使用方便传上来.只是个jar包.

    jsf-facelets-1.1.15.B1.jar

    jsf-facelets-1.1.15.B1.jar

    JSF-2-DataTable

    在JSF 2.0版本中,DataTable组件是一个核心功能,它允许开发者以表格形式展示数据,支持多种交互和操作,如排序、筛选和分页,极大地提高了用户体验。 **1. DataTable的基本概念** DataTable是JSF中的UIComponent,...

    Apress.Pro.JSF.and.Ajax.Building.Rich.Internet.Components.Feb.2008.pdf

    在JSF中,通过使用AJAX库如PrimeFaces或RichFaces,可以实现异步数据交换。这些库通常提供了一系列预定义的组件,支持Ajax功能,例如更新只有一部分的页面区域,或者在后台处理事件后动态显示结果。 **JSF组件**: ...

    JSF-1_1-API.chm

    JSF-1_1-API.chm

    JSF.and.Ajax.Building.Rich.Internet.Components.Feb.2006 英文版

    4. **Ajax集成**:解释如何在JSF中实现Ajax功能,例如使用Ajax行为事件和AJAX请求的处理。 5. **FacesContext和生命周期**:深入理解JSF的生命周期,包括初始化、渲染响应和销毁等阶段。 6. **视图状态管理**:...

    ajax4jsf 刷新datatable 例子

    在这个“ajax4jsf 刷新datatable 例子”中,我们将探讨如何利用Ajax4jsf实现数据表格(datatable)的局部刷新功能,从而提高用户体验。 首先,让我们了解什么是Datatable。在JSF中,`&lt;h:dataTable&gt;` 是一个组件,...

    jsf primefaces datatable

    在JSF应用中,`DataTable`是一个非常重要的组件,用于展示数据集,如数据库查询结果,通过表格形式进行展示和操作。在本篇文章中,我们将深入探讨JSF PrimeFaces的`DataTable`,以及如何与Spring框架集成。 1. **...

    jsf-api-1.2-12.jar

    jsf-api-1.2-12.jar

    weld-jsf-login-2.2.2.Final.zip

    Weld是CDI(Contexts and Dependency Injection)规范的参考实现,而JSF则是一种用于构建用户界面的组件模型。版本号2.2.2.Final表明这是该项目的稳定版本。 描述中的 "frontend-maven-plugin.zip" 提到了一个Maven...

    jsf-api.jar

    `jsf-api.jar` 文件是JSF API的核心库,包含了JSF框架的所有接口和抽象类,开发者可以通过这个API来实现JSF的功能。 该API包特别强调了对中文的支持,这意味着在使用过程中,开发者不会遇到由于找不到中文资源包...

    weld-jsf-translator-war-2.0.0.Beta4.zip

    这个 Beta4 版本可能包含了一些预发布的新功能和改进,旨在帮助开发者在 JSF 应用中更方便地集成 CDI 服务。 【描述】"angularHtml5offline-starterkit.zip" 描述的是一个 Angular HTML5 脱机 Starter Kit,主要...

    基于JSF的失物招领登记系统论文.doc

    基于JSF的失物招领登记系统论文.doc

Global site tag (gtag.js) - Google Analytics