最近做项目需要做到一个项目,其中有一个可行方案:
由于分页的超链接是公司标签封装的,不能直接修改,通过查看编译后在客户端的网页,想到了利用JQUERY框架的
功能来替换某部分原来的url(实际上是在url里加入新的字段,从而在action处理的参数)
部分JavaScript代码如下:
<script language="javascript" src="<common:webRoot/>/system/js/jquery-1.2.1.js"></script>
<script language="javascript">
<!--
function changeAllSelectedState(){
var strAllSelected = null;
if(projectForm.selectall.checked == true){
var strAllSelected = "yes";
}else{
var strAllSelected = "no";
}
$(".table_button a").each(function(){
var strOldHref = $(this).attr("href");
var iInterceptionPos = strOldHref.indexOf("allSelected");
var strOriginHref = null;
if(iInterceptionPos > 0){
strOriginHref = strOldHref.substr(0,iInterceptionPos - 1);
}else{
strOriginHref = strOldHref;
}
var strNewHref = strOriginHref + "&allSelected=" + strAllSelected;
$(this).attr("href",strNewHref);
});
}
$(document).ready(function(){
<% String strAllSelected = (String)request.getAttribute("allSelected");
if("yes".equalsIgnoreCase(strAllSelected)){
%>
projectForm.selectall.checked = true;
selectAll(projectForm);
ckPageSelectHandler(projectForm.selectall,'idList');
<%}%>
$("selectall").click(function(){
selectAll(this.form);
ckPageSelectHandler(this,'idList');
changeAllSelectedState();
});
changeAllSelectedState();
});
-->
</script>
其实就是实现一个分页全选框状态保存功能
这样实现最大的好处是原jsp页面代码完全不需改动,只需添加上述代码,让后在action里加上相应的处理即可