【ireport】ireport嵌入jsp页面后翻页功能,javascript激情手打版

肯定很多人碰到这个问题,所以共享出来,多多交流~

ireport生成的报表嵌入jsp页面后需要翻页功能,写了个翻页功能

需要两个参数

1:npage 表示当前读的是第几页

2:pageSize 表示报表一共几页

这两个参数在输出报表的时候,npage用来指定输出第几页,pageSize可以通过读取jasperPrint的getPages().size()来获取

jsp中设置3个div

<div id="reportPanel" style="width:950px;"></div>        <!-- 用来显示报表-->
<div class="dataTables_info" id="dataTable_info"></div>  <!-- 用来显示“第几页,共几页”的信息-->
<div class="dataTables_paginate paging_full_numbers" id="dataTable_paginate"></div>  <!-- 用来显示翻页按钮的信息-->

下面是javascript翻页的代码:

if(npage>0){   
	var reportHeight = $('#reportPanel table')[0].clientHeight+250;			
	if(reportHeight<650) reportHeight=650;
	theFrame.height(reportHeight);
	$("#dataTable_info").html("第 "+npage+" 页,共 "+pageSize+" 页");
			
	var nextPage=parseInt(npage)+1;
	$("#dataTable_paginate").append("<a href=\"javascript:getReport(1)\" class=\"paginate_button\" id=\"dataTable_first\">首页</a>");
			
	if(npage>1){
		$("#dataTable_paginate").append("<a href=\"javascript:getReport("+(npage-1)+")\" class=\"paginate_button\" id=\"dataTable_previous\">上一页</a>");
	}
			
	if(npage<=3){
		var showLastPage=(pageSize>=5?5:pageSize);
		for(var i=1;i<npage;i++){
			$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
		}
		$("#dataTable_paginate").append("<a class=\"paginate_active\">"+npage+"</a>");
		for(var i=nextPage;i<=showLastPage;i++){
			$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
		}
	}
	else{
		var showLastPage;
		if(pageSize-npage>=2){
			showLastPage=parseInt(npage)+2;
			for(var i=npage-2;i<npage;i++){
				$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
			}
			$("#dataTable_paginate").append("<a class=\"paginate_active\">"+npage+"</a>");
			for(var i=nextPage;i<=showLastPage;i++){
				$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
			}
		}
		else{
			showLastPage=pageSize;
			var showBeginPage=pageSize>5?pageSize-4:1;
			for(var i=showBeginPage;i<npage;i++){
				$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
			}
			$("#dataTable_paginate").append("<a class=\"paginate_active\">"+npage+"</a>");
			for(var i=nextPage;i<=showLastPage;i++){
				$("#dataTable_paginate").append("<a href=\"javascript:getReport("+i+")\" class=\"paginate_button\">"+i+"</a>");
			}
		}
	}
			
	if(npage<pageSize){
		$("#dataTable_paginate").append("<a href=\"javascript:getReport("+nextPage+")\" class=\"paginate_button\" id=\"dataTable_next\">下一页</a>");
	}
	$("#dataTable_paginate").append("<a href=\"javascript:getReport("+pageSize+")\" class=\"paginate_button\" id=\"dataTable_last\">末页</a>");
			
}
else{	//没有报表显示的时候显示的字
	$("#dataTable_info").html("第 "+npage+" 页,共 "+pageSize+" 页");
}


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值