分页实现
首先碰到的问题是,数据库中有很多数据,例如工地,历史图片,这些数据量可能上千。如果全部在一页加载显示,很慢,而且会往下拉长特别多。因此要实现分页,如果先把所有数据得到,然后假分布,一页一页的显示,一次加载所需的时间仍然很长,因此需要实现只从数据库中取得需要的数据部分。这个我是使用javascript实现的。利用Jquery的分布功能:
<script src="../js/backstage/jquery.pager.js" type="text/javascript"></script> <link href="../lib/jquery/splitPaper/pager.css" rel="stylesheet" type="text/css" />
接下来,我需要在页面中定义一个div,显示分页。而且页面上有一个text用来存储总的数据记录数,这样才可以得到页数。
<div id="pager" class="pager" > </div>
<input type="text" name="sitesNum" id="sitesNum" value="${sitesCount}" style="display:none"/>
然后我在javascript文件中定义页面数和每页显示的记录数。
var csiteNums, pageCount; var pageSize = 10;
定义一个函数,用来根据页数来获得相应的后台记录,需要用到ajax。如下:
function getCsiteByPage(type, keyword, pageclickednumber) { //alert(type, keyword, pageclickednumber); var option = { url : "GetActiveCsiteByPage.action", type : "POST", data : "type=" + type + "&keyWord=" + keyword + "&pageclickednumber=" + pageclickednumber + "&pagesize=" + pageSize, dataType : "json", success : function(res, textStatus) { var con = ""; $.each(res, function(i, item) { var startNum = (pageclickednumber-1)*pageSize; con += "<tr>"; con += "<td>" + (startNum + i + 1) + "</td>"; con += "<td>" + item.id + "</td>"; con += "<td><a href=\"ExecCsite.action?siteID=" + item.id + "\">"; con += item.name + "</a></td>"; con += "<td>" + item.addr + "</td>"; con += "<td>" + item.province_name + "</td>"; con += "<td>" + item.city_name + "</td>"; //con += "<td>" + item.district_id + "</td>"; con += "<td>" + item.region_name + "</td>"; con += "<td>" + item.constructor + "</td>"; con += "<td>" + item.builder + "</td>"; con += "<td>" + item.etpr_name + "</td>"; con += "<td>" + item.ctc_name + "</td>"; con += "<td>" + item.active + "</td>"; /*con += "<td><a href=\"ViewCsiteDetail.action?siteID=" + item.id + "\">"; con += "查看</a></td>";*/ con += "<td><a href=\"ViewCsiteDetail.action?siteID=" + item.id + "\">"; con += "修改</a></td>"; /* con += "<td><a href=\"StopCsiteDetail.action?siteID=" + item.id + "\">"; con += "停止</a></td>";*/ con += "</tr>"; }); // 先移除原有数据 var entries = $("#table_overview tr"); var i; for (i = 1; i < entries.length; i++) $(entries[i]).remove(); $("#table_overview").append(con); addSizeFrame(); }, error : function(res, textStatus) { // alert(textStatus); } }; $.ajax(option); }所以感觉分页只能使用ajax来完成,而不能使用一个action得到所有的数据,然后在前台显示这种easy的方法。
相关推荐
K先生 2020-11-10
wushengyong 2020-10-28
西瓜皮儿的皮儿 2020-09-07
molong0 2020-08-03
jokewinl 2020-07-18
田有朋 2020-07-05
80530895 2020-07-05
javamagicsun 2020-06-21
liangwenrong 2020-06-17
molong0 2020-06-16
xiuyangsong 2020-06-03
jaylong 2020-06-02
EdShao 2020-05-29
晨曦之星 2020-05-29
dreamhua 2020-05-10
smalllove 2020-05-09
liqiancao 2020-05-08
Dullonjiang 2020-05-06
GechangLiu 2020-05-04