最近要實現一個功能,就是checkbox跨頁多選,在網上看了一下,資料很少,而且大多是不完全的。不過經過我的努力,終于做出來了。
JSP頁面:
1,定義三個Hidden變量:
1
2
3
|
<INPUT type= "hidden" name= "all_selected" > <INPUT type= "hidden" name= "now_selected" > <INPUT type= "hidden" name= "no_selected" > |
2,javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
// 獲取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()方法.
在后臺,每次翻頁時調用方法
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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實現跨頁多選的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!
原文鏈接:http://blog.csdn.net/shiyu_sy/article/details/54616919