本文主要是介绍Java checkbox实现跨页多选,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的。不过经过我的努力,终于做出来了。
JSP页面:
1,定义三个Hidden变量:
2,javascript
每次翻页的时候调用getCheckBoxInformation()方法,页面加载的时候调用initPage()方法.
在后台,每次翻页时调用方法
将此方法返回的all_select再传到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 checkbox实现跨页多选的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!