肯定很多人碰到这个问题,所以共享出来,多多交流~
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> <!-- 用来显示翻页按钮的信息-->
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+" 页"); }