最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的。不过经过我的努力,终于做出来了。
JSP页面:
1,定义三个Hidden变量:
<INPUT type="hidden" name="all_selected">
<INPUT type="hidden" name="now_selected">
<INPUT type="hidden" name="no_selected">
2,javascript
// 获取checkbox信息,选中,未选中,当前选中
function getCheckBoxInformation() {
var checkboxes = document.getElementsByName("checkbox");
var checkedStr = "";
var uncheckedStr = "";
var url = "";
for(var i = 0; i < checkboxes.length; i++) {
var checkbox = checkboxes[i];
if(checkbox.checked) {
checkedStr = checkedStr + "," + checkbox.value;
}else {
uncheckedStr = uncheckedStr + "," + checkbox.value;
}
}
document.form1.now_selected.value = checkedStr;
document.form1.no_selected.value = uncheckedStr;
}
// 页面onload的时候计算当前页被选中项,并在页面表示
function initPage() {
var all_selected = document.form1.all_selected.value;
if(all_selected != "" && all_selected!= null) {
var arrall_select = all_selected.split(",");
if(arrall_select.length > 0) {
for(var k = 0; k < arrall_select.length; k++) {
for(var i = 0; i < document.form1.checkbox.length; i++) {
if(document.form1.checkbox[i].value == arrall_select[k]) {
document.form1.checkbox[i].checked = true;
}
}
}
}
}
}
每次翻页的时候调用getCheckBoxInformation()方法,页面加载的时候调用initPage()方法.
在后台,每次翻页时调用方法
public String doubleSpread(String all_select, String now_selected, String no_selected) {
//获取当前选中的项目加入al
List al = new ArrayList();
if(all_select != "" && all_select != null)
{
String[] all_select_str = all_select.split(",");
for(int a=0;a<all_select_str.length;a++)
{
al.add(all_select_str[a]);
}
}
//将当前选中项目加入列表
if (now_selected != "" && now_selected != null) {
String[] all_now_select = now_selected.split(",");
for (int i = 1; i < all_now_select.length; i++) {
if (!al.contains(all_now_select[i])) {
al.add(all_now_select[i]);
}
}
}
//将当前未选中项目从列表中删除
if (no_selected != "" && no_selected != null) {
String[] all_now_no_select = no_selected.split(",");
for (int i = 1; i < all_now_no_select.length; i++) {
if (al.contains(all_now_no_select[i])) {
al.remove(all_now_no_select[i]);
}
}
}
all_select=al.toString().replaceAll(" +","");;
all_select=all_select.substring(1,all_select.length()-1)+",";
return all_select;
}
将此方法返回的all_select再传到JSP页面上并赋值给那个隐藏域,到此,功能就实现了。
分享到:
相关推荐
最近做了一个项目其中遇到这样的需求,要实现checkbox跨页多选功能,经过小编整理,顺利解决,今天小编给大家分享Java中checkbox实现跨页多选的方法,需要的的朋友参考下
基于Layui下拉选择框的多选解决方案;前身前往formSelectes, 由于渲染速度慢, 代码冗余, 被放弃了;xm-select使用了新的开发方式, 利用preact进行渲染, 大幅度提高渲染速度, 并且可以灵活拓展
android listview,ExpandableListView实现单选,多选,全选,edittext实现批量输入.zip
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at ... Unless required by ...
主要为大家详细介绍了Java带复选框的树实现和应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
工程从数据库中获取相关信息,通过列表显示所有数据,实现了checkbox的全选,并将选中部分的数据传入后台,进行操作。
后台通过array来接受前端多个复选框选中的值,里面有全代码可以直接拿去用。
摘要:Java源码,Android,RadioButtonAndCheckBox RadioButton And CheckBox——Android单选多选按钮的应用举例源代码下载。单选按钮和多选按钮在Android中应用十分广泛,因此对于Android开发来说,本实例有必要学习...
想做一个先按层级排序并可以多选的功能,首先倾向于用多层标签式的,直接选定加在文本域里, 查到这文,非常详细,如果大家需要做前面所说的功能,可以参考这个地址,http://mrthink.net/jquery-plugin-iselecttags/...
今天总算把部门多选的效果整出来 见图: 先共享核心代码: 1:js脚本 代码如下: var treeHTML = “”; var checkList = new Array(); /*only init here*/ var barString = “└”;/*┝└*/ var degreeString = “ ...
Android-ListView该Demo实现了ListView嵌套ListView并还有CheckBox全选反选单选的实类似淘宝购物车功能
用惯Java和其他语言的时候,表单上传只需要checkbox的name相同的时候就可以上传了 <input type="checkbox" name="checkbox" value="1"> 选项 <input type="checkbox" name="checkbox" value="2"> 选项 ...
Ext的UI组件模型和开发理念脱胎、成型于Yahoo组件库YUI和Java平台上Swing两者,并为开发者屏蔽了大量跨浏览器方面的处理。相对来说,EXT要比开发者直接针对DOM、W3C对象模型开发UI组件轻松。 ExtJS(ajax框架) 4.2.1...
以setAdapter形式注入数据,直接设置selector为background即可完成标签选则的切换,类似CheckBox,支持控制选择的Tag数量,比如:单选、多选,支持setOnTagClickListener,当点击某个Tag回调,支持setOnSelectListener,...
MultiSelectedCheckboxandroid, multi selected checkbox, to select some extra conditions.右滑抽屉fragment可以进行购物时尺码或者颜色等的附加筛选条件的选择。这个选择是多选的,可以同时保存选择的多项条件。
用户通过写selector标签自定义点击后TagView状态的变化#效果图功能以setAdapter形式注入数据直接设置selector为background即可完成标签选则的切换,类似CheckBox支持控制选择的Tag数量,比如:单选、多选支持...
3.8 CheckBox属性及相关代码 23 3.9 RadioGroup属性及相关代码 25 3.10 ToggleButton 26 3.11 Spinnner 28 3.12 DatePicker 29 3.13 TimePicker 30 4.1适配器是什么 30 4.2 ArrayAdapter的使用 32 4.3设置监听以及...
6.3 java+sql或者java+sql+xml 7、无边框效果的制作 8、连动下拉框技术 9、文本排序 一、验证类 1、数字验证内 1.1 整数 /^(-|\\+)?\\d+$/.test(str) 1.2 大于0的整数 (用于传来的ID的验证) /^\\...
多选用于支持项目选择的 API。 使用 Control 和 Shift 操作,也可以双击。 SetSelection 是 top parent,只是为了保持一个简单的 Set 选择项,没有事件,或者点击处理。 ClickSelection 是一个更具体的层,它添加了...