前端页面部分代码:
<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功能的Web应用到Tomcat时,确保所有必要的库,如`jsf-api.jar`(通常与`jsf-impl.jar`一起使用,提供JSF实现),被正确地添加到Tomcat的类路径(ClassPath)中是至关重要的。如果缺失这些库,应用程序...
在本教程中,我们将深入探讨JSF的核心概念、基本组件以及如何在实际项目中应用JSF。 1. **JSF框架概述** JSF框架的核心目标是简化Java Web开发,通过提供声明式编程模型来减少代码量。它将UI组件、业务逻辑和数据...
JSF的核心组件包括`jsf-api.jar`和`jsf-impl.jar`,这两个jar包在给定的压缩文件中占有重要位置。 1. **jsf-api.jar**: `jsf-api.jar`包含了JSF框架的公共API,它是开发者编写JSF应用时所依赖的接口和类。这些...
在JSF(JavaServer Faces)2.0中,`dataTable`是一个非常重要的组件,用于展示动态数据表。这个例子展示了如何实现一个具有单行编辑功能的`dataTable`,让用户能够直接在表格中编辑数据并保存更改。下面我们将深入...
**标题**:“JSF.2.0.Cookbook.Jun.2010”表明这是一本关于JavaServer Faces (JSF) 2.0版本的技术书籍,发布于2010年6月。 **描述**:“Packtpub.JSF.2.0.Cookbook.Jun.2010 需要研究JSF的可以參考看看 英文內容” ...
JSF开发所必需包:花了很长时间才收集好,很费时,现已收集好,何不分享给大家,让大家节省时间做点有意义的事情呢?呵呵。。。已在附件供大家下载,若是你所需要的东西,那就请投个票、说句鼓励的话,我就满足了。 ...
这是jsf-impl-1.2_15.jar,为了使用方便传上来.只是个jar包.
jsf-facelets-1.1.15.B1.jar
在JSF 2.0版本中,DataTable组件是一个核心功能,它允许开发者以表格形式展示数据,支持多种交互和操作,如排序、筛选和分页,极大地提高了用户体验。 **1. DataTable的基本概念** DataTable是JSF中的UIComponent,...
在JSF中,通过使用AJAX库如PrimeFaces或RichFaces,可以实现异步数据交换。这些库通常提供了一系列预定义的组件,支持Ajax功能,例如更新只有一部分的页面区域,或者在后台处理事件后动态显示结果。 **JSF组件**: ...
JSF-1_1-API.chm
4. **Ajax集成**:解释如何在JSF中实现Ajax功能,例如使用Ajax行为事件和AJAX请求的处理。 5. **FacesContext和生命周期**:深入理解JSF的生命周期,包括初始化、渲染响应和销毁等阶段。 6. **视图状态管理**:...
在这个“ajax4jsf 刷新datatable 例子”中,我们将探讨如何利用Ajax4jsf实现数据表格(datatable)的局部刷新功能,从而提高用户体验。 首先,让我们了解什么是Datatable。在JSF中,`<h:dataTable>` 是一个组件,...
在JSF应用中,`DataTable`是一个非常重要的组件,用于展示数据集,如数据库查询结果,通过表格形式进行展示和操作。在本篇文章中,我们将深入探讨JSF PrimeFaces的`DataTable`,以及如何与Spring框架集成。 1. **...
jsf-api-1.2-12.jar
Weld是CDI(Contexts and Dependency Injection)规范的参考实现,而JSF则是一种用于构建用户界面的组件模型。版本号2.2.2.Final表明这是该项目的稳定版本。 描述中的 "frontend-maven-plugin.zip" 提到了一个Maven...
`jsf-api.jar` 文件是JSF API的核心库,包含了JSF框架的所有接口和抽象类,开发者可以通过这个API来实现JSF的功能。 该API包特别强调了对中文的支持,这意味着在使用过程中,开发者不会遇到由于找不到中文资源包...
这个 Beta4 版本可能包含了一些预发布的新功能和改进,旨在帮助开发者在 JSF 应用中更方便地集成 CDI 服务。 【描述】"angularHtml5offline-starterkit.zip" 描述的是一个 Angular HTML5 脱机 Starter Kit,主要...
基于JSF的失物招领登记系统论文.doc