最近要实现一个功能,就是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页面上并赋值给那个隐藏域,到此,功能就实现了。
分享到:
相关推荐
在Java Web开发中,实现checkbox跨页多选功能是一项常见的需求,特别是在数据量大、需要分页展示的情况下。这个功能允许用户在多个页面上选择不同的选项,并在提交时能够保存所有选择,无论这些选项分布在多少个页面...
本教程将深入探讨如何使用CheckBox实现多选、全选和反选功能,这对于构建具有选择列表的应用非常关键。 首先,我们从基础开始。CheckBox的用法很简单,通常在XML布局文件中定义: ```xml <CheckBox android:id="@...
实现CheckBox多选功能的第一步是创建一个自定义的ListView布局文件。这个布局通常包含一个TextView用于显示文本信息,以及一个CheckBox用于选择。例如,你可以创建一个名为`list_item.xml`的布局文件: ```xml ...
在许多场景下,我们需要在ListView中加入复选框(Checkbox),实现多选功能,例如用户可以选择多个项目进行操作。本文将详细介绍如何在Android中使用ListView和Checkbox实现多选功能。 一、ListView概述 ListView是...
为了增强用户体验,我们经常需要在ListView中集成Checkbox,实现单选或多选功能。本教程将详细讲解如何使用ListView与Checkbox结合,来实现这样的功能。 首先,我们需要在ListView的适配器(Adapter)中创建一个...
本文将深入探讨如何使用CheckBox来创建一个多选列表,并实现全选和反选的功能。这些功能常见于各种应用,如设置菜单、购物车等,使得用户可以方便地进行多项操作。 首先,我们需要一个ListView来展示列表项。...
本文将深入探讨如何在ListView中实现Checkbox多选功能,以及相关的Android编程技巧。 首先,我们需要创建一个自定义的ListView adapter。这个adapter将负责渲染每一项数据,并在每一项中包含一个Checkbox。在Java...
总结起来,这个示例展示了如何在Android应用中创建一个具有多选功能的自定义Dialog,通过Dialog、ListView和CheckBox的组合实现用户交互。这种功能在很多场景下都很实用,比如选择联系人、文件或者其他任何需要用户...
本教程将详细介绍如何在Android中实现CheckBox的单选和多选,并简要介绍迭代器的使用方法。 首先,让我们来理解一下“单选”和“多选”的概念。单选指的是用户只能从一组选项中选择一个,而多选则允许用户选择多个...
本文将详细讲解如何在RecyclerView中结合CheckBox实现单选和多选,并讨论左右分层的布局方式,类似listFragment的效果。 首先,我们需要创建一个自定义的ViewHolder,它包含一个CheckBox和其他视图。ViewHolder是...
### Android ListView 中实现多选、全选、反选与删除功能 在Android开发过程中,我们经常需要处理列表项的选择操作,比如多选、全选、反选以及删除等。这些功能在很多应用中都有体现,比如邮件应用中的批量操作、...
在很多场景下,比如设置界面、列表选择等,我们常常需要实现Checkbox的多选和全选功能,这使得用户能够方便地批量操作。本教程将详细讲解如何在Android应用中实现Checkbox的多选全选功能。 首先,我们需要了解...
本篇文章将详细讲解如何在不同的编程语言和环境中使用复选框来实现多选功能。 一、复选框的基本概念 复选框通常表示一个可独立选择的状态,用户可以通过勾选或取消勾选来切换其状态。在多选场景下,用户可以选择一...
本篇文章将详细探讨如何在ListView中结合Checkbox实现多选功能。 ### 1. ListView的基本使用 首先,我们需要了解ListView的基础用法。在布局文件中声明ListView,并在Java代码中找到对应的View对象,然后通过...
本篇文章将深入探讨如何在ListView中实现CheckBox的多选功能,并记录用户的选定状态。ListView是Android中常用的一个控件,它允许我们以列表的形式展示大量数据,而CheckBox则提供了一种让用户进行多选操作的方式。 ...
但根据你的需求,我们可以通过自定义组件来实现多选功能。在标题"JComboBox下拉框多选"中提到的场景,就是将`JComboBox`与`JCheckBox`相结合,以实现用户可以从下拉列表中选择多个选项的功能。 以下是一个详细的...
总的来说,复选框是用户界面中不可或缺的一部分,它允许用户进行多选操作,从而为应用程序提供了丰富的交互体验。理解和掌握如何在不同平台上实现复选框及其事件处理,是任何前端或后端开发者都需要掌握的基础技能。
本篇文章将深入探讨如何使用GridView实现漂亮的多选效果,以便用户可以方便地选择多个项目。 首先,我们需要了解GridView的基本用法。GridView继承自AbsListView,它会在垂直方向上滚动,并将子视图排列成行和列。...
然而,当需要在ListView中集成CheckBox以便实现多选、全选和反选功能时,开发者往往会遇到一些挑战,因为ListView的复用机制可能导致CheckBox的状态无法正确保存。本文将详细介绍如何在Android中实现一个带有...