记录分页的选项(JavaScript)
实现分页时,当进入到下一页时,想继续保存上一页保存的选项。。
下面是主页的内容
<script>
var hiddenArr=[];
</script>
<iframe>
<......jsp页面、
</iframe>
//iframe中jsp页面的java代码,用于分页的部分代码
String gadgetIds="";//用于储存已经选中的checkbox选项
String gadgetIds_url=request.getParameter("gadgetIds");//如果是分页,会传入参数gadegIds
String IdsInSession=(String)httpSession.getAttribute("gadgetIds_left");//session中是本页面提交后,记录的所有选中的项。。。
if(gadgetIds_url==null){
gadgetIds=IdsInSession;//
}else{
gadgetIds=gadgetIds_url;
}
下面是iframe页面的JavaScript代码
~function(){//初始化,判断是后退进入的页面还是分页中进入下一页、、、
var label="<%=gadgetIds_url%>";
if(label==="null"){//是后退进入的页面
var c=+"<%=currentPageStr%>";
var sIds="<%=IdsInSession%>".split('_');//从session中读取数据,给数组赋值
for(var i in sIds){
parent.hiddenArr[i]=sIds[i];
}
}
}();
function setHiddenText(){
var checkValues=getCheckBoxValue("checkValue");
var currentPage=+"<%=currentPageStr%>";//当前所在的页码数。。。转为数字。。。
if(checkValues!=""){
var hiddenText=parent.hiddenArr;//获取父窗口的数组对象
hiddenText[currentPage-1]=checkValues;//根据当前页,作为index给数组赋值
}
}
已当前分页页面作为数组的index,记录值。。
但虽然记录下来了,但并没有反映到页面上。。。回到上一页,仍然没有设置、、、
function nextOrPrePage(t,nop){//上一页,下一页触发的函数。。
var gIds=getSelectedCheckBoxIds();
var idsA=gIds.split('_');
if(nop=='n'){
var p=+"<%=nextPage%>";
gIds=idsA[p-1];//只传入将要转向页的内容,获取当前页对应的数组的字符串
t.setAttribute("href","<%=ctx%>/jsp/head/leftManager.jsp?currentPage=<%=nextPage%>&gadgetIds="+gIds);
}
else if(nop=='p'){
var f=+"<%=frontPage%>";
gIds=idsA[f-1];
t.setAttribute("href","<%=ctx%>/jsp/head/leftManager.jsp?currentPage=<%=frontPage%>&gadgetIds="+gIds);
}
return true;
}
function getSelectedCheckBoxIds(){//获取所有复选框的值。。。
setHiddenText();//获取之前先设置
var hiddenText=parent.hiddenArr.join('_');
return hiddenText;
}
//判断checkboxbox是否需要设置选中
String pstr="[,|_]"+idStr+"[,|_]";
Pattern p=Pattern.compile(pstr);
Matcher m=p.matcher(","+gIds);
if(m.find()){
return true;
}
return false;
jsp页面中
<%if(gadgetIds!=null){if(patternChecked(gadget.getId()+"",gadgetIds)) {%>checked<%}} %>