- 浏览: 448130 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (108)
- Ibatis (0)
- ZK (13)
- 设计模式 (3)
- Java编程 (21)
- 正则表达式 (2)
- 开发小续 (2)
- 杂谈 (1)
- 数据库 (6)
- Hibernate (6)
- Struts 2 (2)
- Spring (2)
- 版本控制 (4)
- Subversion (1)
- Myeclipse (1)
- EL (1)
- jsp (1)
- CAS (1)
- SSO (1)
- Restful Web Service (3)
- jersey (2)
- jersey与spring (1)
- web service框架 (1)
- 系统分析 (1)
- Subversion windows service (1)
- tomcat (1)
- PermGen Space (1)
- 编程心得 (1)
- google map api (1)
- springmvc (1)
- ajax (1)
- Hibernate QBC (1)
- oracle oracle10g (1)
- RBAC 权限设计 (1)
- springsecurity 3 (1)
- JPA (1)
- JPA j2ee (1)
- maven java (1)
- Jquery框架 UI框架 (1)
- printcss (1)
- java reflect 反射 (1)
- Jquery框架 UI框架 3scschool (1)
- collabnet Subversion (1)
- linux redhat (1)
- mysql (3)
- spring spring-data-jpa (1)
- Jquery AjaxForm (1)
- Jquery Map (1)
- linux (3)
- linux nginx openssl zlib pcre (1)
- linux jdk (1)
- 物联网技术 嵌入式 C# (1)
- oracle 数据库 (1)
- oracle (5)
- maven (1)
- java 定时器 (1)
- swing (1)
- java (2)
- 短信接口 (1)
- DBUtils (1)
- JDBC (1)
- javascript json (1)
- shiro (1)
- 权限系统 (1)
- 嵌入式 (1)
- 树莓派 (1)
- python (1)
- Github (1)
- 代码托管 (1)
- 产品设计 (2)
- 产品需求 (2)
- BRD (1)
- MRD (1)
- PRD (1)
- DRD (1)
- FRD (1)
- GIS (1)
- SOA (1)
- 网站资源 (1)
- 骆驼 (1)
- 黑客技术资源 (1)
- 网络安全资源 (1)
- 个人修炼 (1)
- Angular2 (1)
- Nodejs Krakenjs (1)
最新评论
-
GeorgeFeng:
学习啦,感谢
RBAC用户权限管理数据库设计 -
徜徉の小溪:
yuanliangding 写道请求进来时,创建的对象都不是由 ...
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
yuanliangding:
请求进来时,创建的对象都不是由Spring弄出来的。。
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
Ripin_Yan:
我已经按照你的xml这个顺序配置了,结果还是中文乱码。是还有什 ...
SpringMVC使用注解@ResponseBody返回json中文乱码 -
王静娜:
作者的实体图画的很好很有条理,但是个人觉得用户组对应的是资源, ...
RBAC用户权限管理数据库设计
on June 30, 2010, I have met a question In ZK client programming, 使用 ZK的方便之处就是基于注 解"@{}",但所有的事物都是双刃剑,当我们使用注解实现AfterCompse接口 zk自动帮我们绑定后台的对象,但当我们对同一对象重用时,我们必须还需在后台把它的实例给销毁,然后重新绑定对象.这样的一来一回会减低我们的开发效率.
所以使用ZK注解开发人员应该考虑相应系统的复杂性和重用性后酌情处理。
下面的例子是在开发中动态生成Component组件 并使用客户端技术JQuery 实现功能
1.后台Java类中动态生成Grid 容器组件的子组件 把在这些组件创建时绑定数据然后再返回给zul页面显示数据.
Java代码 package com.linktel.linkFax.web.zk.controller;
import java.awt.Checkbox;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.zkoss.zk.ui.Components;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zk.ui.ext.AfterCompose;
import org.zkoss.zkplus.databind.AnnotateDataBinder;
import org.zkoss.zkplus.spring.SpringUtil;
import org.zkoss.zul.Window;
import org.zkoss.zul.api.Combobox;
import org.zkoss.zul.api.Div;
import org.zkoss.zul.api.Grid;
import org.zkoss.zul.api.Label;
import org.zkoss.zul.api.Row;
import org.zkoss.zul.api.Rows;
import com.linktel.linkFax.domain.Authority;
import com.linktel.linkFax.domain.Role;
import com.linktel.linkFax.service.AuthorityService;
import com.linktel.linkFax.service.RoleService;
import com.linktel.linkFax.web.zk.util.ZkUtils;
public class AuthorityController extends Window implements AfterCompose {
private static final long serialVersionUID = 1L;
private Role role = new Role();
private Authority authority=new Authority();
private List<Authority> authorities;
private List<Role> roles;
protected Grid gdAuthorities;
protected AnnotateDataBinder binder;
private Combobox cbxRole;
public Role getRole() {
return role;
}
public void setRole(Role role) {
this.role = role;
}
public Authority getAuthority() {
return authority;
}
public void setAuthority(Authority authority) {
this.authority = authority;
}
public List<Authority> getAuthorities() {
return authorities;
}
public void setAuthorities(List<Authority> authorities) {
this.authorities = authorities;
}
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
@Override
public void afterCompose() {
Components.wireVariables(this, this);
Components.addForwards(this, this);
init();
}
public void onCreate() {
binder = (AnnotateDataBinder) this.getAttribute("binder", true);
}
/*
* 页面加载实现afterComposer()方法初始化
* 动态创建Grid组件Rows中的Checkbox 组件并绑定数据
*/
@SuppressWarnings("unchecked")
public void init() {
RoleService roleService = (RoleService) SpringUtil
.getBean("roleService");
roles = roleService.getRolesAll();
AuthorityService authService = (AuthorityService) SpringUtil
.getBean("authorityService");
authorities = authService.getAuthoritiesAll();
Rows rows=gdAuthorities.getRowsApi();
List<Row> rowList=rows.getChildren();
for(int i=0;i<authorities.size();i++){
Authority authority= authorities.get(i);
Row row=new org.zkoss.zul.Row();
Div div=new org.zkoss.zul.Div();
org.zkoss.zul.api.Checkbox chk=new org.zkoss.zul.Checkbox();
Label lblId=new org.zkoss.zul.Label();
lblId.setValue(authority.getId().toString());
Label lblDisName=new org.zkoss.zul.Label();
lblDisName.setValue(authority.getDisplayName());
chk.setParent(div);
lblId.setParent(div);
div.setParent(row);
lblDisName.setParent(row);
rowList.add(row);
}
}
以上我们实现了,动态生成组件绑定数据,下面我们来实现Zul页面(全选)Checkbox 对动态生成组件的(全选/选不选)
Xml代码
<?xml version="1.0" encoding="utf-8"?>
<?page id="authorityPage"?>
<?xel-method prefix="c" name="hasPermission"
class="com.linktel.linkFax.web.zk.util.AuthorityTools"
signature="com.linktel.linkFax.web.zk.util.AuthorityTools hasPermission(java.lang.String)"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" root="./authorityWin"?>
<window id="authorityWin"
use="com.linktel.linkFax.web.zk.controller.AuthorityController" width="100%"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:n="http://www.zkoss.org/2005/zk/native" xmlns="http://www.zkoss.org/2005/zul"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd"
xmlns:w="http://www.zkoss.org/2005/zk/client">
<grid id="gdAuthorities" mold="paging" paginal="@{pagingId}"
fixedLayout="true">
<columns>
<column>
<checkbox w:onCheck="
var allCtrl = this;
jq('@checkbox',this.parent.parent.nextSibling).each(
function(i,chk){
var c =zk.Widget.$(chk);
if(allCtrl.isChecked()){
c.setChecked(true);
}else{
c.setChecked(false);
}
});"></checkbox>
</column>
<column></column>
</columns>
<rows>
</rows>
</grid>
</window>
首先我们客户端编程需要引入命名空间 xmlns:w=http://www.zkoss.org/2005/zk/client
ZK引擎是基于Jquery实现的, 我们使用zk给我们提供的JQuery类库 ZK中w:onCheck="" 在用户选中一个复选按钮时触发一个oncheck客户端事件,jq(@window,this.parent.nextSibling).each(...);@window是checkbox组件类型,this.parent.nextSibling是找到当前组件的父组件的同级组件;each(.....)对嵌套的组件进行遍历,each(....)中定义匿名函数,function(i,chk){...} chk参数就是被迭代的子组件,zk5.0.2中checkbox其实不具有客户端checkbox的任何行(action)为,所以我们必须用zk.Widget.$(chk);转换成Widget客户端的组件这样它才真正具有了checkbox的行为(action).转换成widget的组件后我们就可以在客户端对checkbox进行
(全选/全部选).
以上的功能实现是在和同事(张学化)的讨论下完成的。
发表评论
-
ZK fulfill 属性的延迟加载组建
2010-08-19 11:01 1881fulfill属性 fulfill属 ... -
ZK加载页面的生命周期
2010-08-04 17:26 2174加载页面的活动周期 ... -
ZK使用JQuery实现动态效果
2010-07-15 11:26 4035<?xml version=" ... -
(转)ZK框架初步总结【二】---关于server-push
2010-07-05 09:32 2539关于ZK框架的服务推 ... -
ZK 获取客户端事件状态的问题 ?
2010-07-02 17:37 2287ZK Client Programming, 在客户端编程.触 ... -
Struts,ZK 各实现细粒度的权限验证控制(下)
2010-06-28 16:05 1273上篇,所说为什 ... -
Struts,ZK 各实现细粒度的权限验证控制(上)
2010-06-28 15:26 1814权限控制我们有很多种实现的方法,而对于不同的UI编 ... -
ZK 5.0.2版本中constraint 验证不符合规范时却不能中断zul向后台提交
2010-06-24 16:17 1995ZK 5.0.2版本中constraint 验证不符合规范时却 ... -
ZK 3.6.4和5.0.2版本servlet线程与事件处理线程的配置区别
2010-06-22 13:32 2092默认情况下,ZK的过程中一个独立的线程的事件称为事 ... -
ZK 多个下拉菜单动态级联绑定对象
2010-06-13 09:23 5032//前台页面的zul文件 =========== ... -
ZK 5.0.2 报错信息的Bug
2010-06-04 13:55 3129xml <listbox id=&q ... -
ZK Paging组件实现动态分页,描述很通俗易懂
2010-05-28 11:41 5212zul页面: zul 页面: < ...
相关推荐
### JavaScript 实现复选框全选/取消功能 在网页开发中,经常需要用到复选框全选或取消的功能。本文将详细介绍如何通过JavaScript实现这一功能,并解析提供的代码片段。 #### 1. 功能概述 本功能的目标是实现一个...
本文实例讲述了js与jQuery实现checkbox复选框全选/全不选的方法。分享给大家供大家参考,具体如下: 先来看看JavaScript实现checkbox复选框全选/全不选的方法。这应该是一个比较实用的前端技巧吧,很多时候我们都...
在JavaScript编程中,"js控制复选框全选、全不选"是一个常见的需求,尤其在数据表或者选项列表中,用户可能希望一次性选中或取消所有复选框。这个功能可以通过编写简单的JavaScript代码实现。这里我们将深入探讨如何...
在上面的代码中,`#checkAll`是“全选”按钮的ID,`$('input[type=checkbox]')`选择了所有复选框,`not(this)`排除了当前点击的“全选”按钮,`prop('checked', this.checked)`设置了这些复选框的选中状态。...
本文将深入探讨“复选框全选全不选JS代码”的实现原理、应用场景以及如何优化这段代码,以便开发者能够更好地理解和运用到实际项目中。 ### 复选框全选与全不选的概念 复选框(Checkbox)是Web表单中常见的元素,...
CheckBox复选框JS实现全选、不选、全不选功能,很简单,具体内容如下 思路: 1、获取元素 2、给全选 不选 反选添加点击事件 3、用for循环checkbox 4、把checkbox的checked设置为true即实现全选 5、把checkbox的...
在实际应用中,我们经常需要在列头添加复选框来实现全选或全不选的功能,以便于用户对大量数据进行操作。本篇将深入探讨如何利用SpreadJS实现这一功能,并结合提供的压缩包文件进行解析。 首先,我们关注的是"demo....
本资源"复选框全选、全不选和反选的效果实现.rar"聚焦于JavaScript(JS)实现复选框的全选、全不选和反选功能,这对于创建交互性强、用户体验良好的网页表单至关重要。全选、全不选和反选功能使得用户可以便捷地管理...
有时候,我们希望在表格的表头中添加复选框,以便实现全选或取消全选的功能,这在处理大量数据时尤其有用。本篇文章将详细解释如何在`QTableWidget`的表头中添加复选框并实现全选功能。 首先,我们需要了解`...
在上面的代码中,我们有一个ID为`selectAll`的全选复选框和一个ID为`uncheckAll`的全不选按钮。复选框的name属性设为`option`,这样它们将被视为一组。 接下来,我们需要用jQuery来监听这两个按钮的点击事件,并...
接下来,我们需要监听`DataGridView`的`CellClick`事件,以便当用户点击列头(即复选框)时,触发全选或全取消的操作。在事件处理函数中,我们可以检查被点击的单元格是否为复选框列的列头,并根据当前所有行的选中...
2. 在列表下方放置一个“全选/全不选”复选框,当选中“全选/全不选”复选框后,列表中的所有复选框都选中,当取消“全选/全不选”复选框后,列表中的所有复选框都取消选中。 3. 当列表中的复选框都取消选中后,...
在上面的代码中,我们有一个全选复选框(`#selectAll`)和多个行内复选框(`.itemCheckbox`)。全选复选框用于控制所有行内复选框的状态。 接下来,我们使用JavaScript(通常配合jQuery库,但也可以使用原生JS)来...
js 实现 复选框全选(二)! 值得下载看看!资源免费,大家分享!!
本篇文章将详细探讨如何在`QTableWidget`或`QTableView`的表头中添加复选框,并实现全选/全不选的功能。 首先,我们需要了解`QTableWidgetItem`和`QHeaderView`。`QTableWidgetItem`是`QTableWidget`中的基本元素,...
这里我们检查表头`CheckBox`的状态,并同步到每一行的复选框。当然,这需要在数据绑定到`DataGridView`之前,确保第一列是可勾选的`DataGridViewCheckBoxCell`。 为了使用户的选择能够被程序识别和处理,我们需要在...
`$(this).is(':checked')`用于判断全选复选框是否被选中,`$('.child-checkbox').prop('checked', true/false)`则是用来改变所有子复选框的选中状态。 此外,为了完善用户体验,我们还可以添加一个反向操作,即当...
点击全选复选框时,调用`checkAll`方法来更新购物车中每个商品的`isChecked`状态,同时也更新`selectedData`数组和`AllChecked`状态。 ```javascript methods: { checkAll() { let list = this.shoppingListData....
然后,对每个子复选框添加了`change`事件监听器,当子复选框状态改变时,检查所有子复选框是否都处于同一状态,进而更新全选复选框的状态。 综上所述,通过JavaScript实现复选框全选全不选以及子复选框带动全选框的...