laypage分页

首先laypage分页 用到了三个工具类

Util.PageOrder

package com.main.java.gbicc.entprophet.util;

 

public class PageOrder {

    //总条数
    private int totalCount;
    //分页开始下标
    private int start = 0;
    //偏移量
    private int offset = 20;
    //
    private int rows ;
    //总页数
    private int page ;
    
   //排序
    private String order ;
    private String sort ;


}

 

第二个工具类

Util.PageUtils

package com.main.java.gbicc.entprophet.util;


import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings(value={"unchecked", "rawtypes"})
public class PageUtils {


private static final String LOGIN_PAGE = "/summit/login_jsp.sec";

/**
* 分页公用方法
* @param paramMap 
* @param order 
* @param count 总记录数
*/
public static void getPageMap(Map paramMap, PageOrder order,int count){
    if (null == order) {
        order = new PageOrder();
    }
    order.setTotalCount(count);
    paramMap.put("start",(order.getPage()-1)*order.getRows());
    paramMap.put("offset",order.getRows());
    paramMap.put("sort", order.getSort());
    paramMap.put("order",order.getOrder());
}


public static void jumpLoginPage(HttpServletRequest request, HttpServletResponse response) throws IOException {
    request.setCharacterEncoding("utf-8");
    response.setCharacterEncoding("utf-8");
    PrintWriter out = response.getWriter();
    StringBuilder builder = new StringBuilder();
    builder.append("<script type=\"text/javascript\">");
    builder.append("window.top.location.href='");
    builder.append(LOGIN_PAGE);
    builder.append("';");
    builder.append("</script>");
    out.print(builder.toString());
}

public static void getPageHome(Map paramMap, PageModel model, int count) {
    if (null == model) {
        model = new PageModel();
    }
    model.setTotalCount(count);
    paramMap.put("start",(model.getPageNo()-1)*model.getPageSize());
    paramMap.put("offset",model.getPageSize());
    paramMap.put("sort", model.getSort());
    paramMap.put("order",model.getOrder());
    }
}

 

第三个工具类

package main.java.ExamSystem.utils;
 

public class PageModel {


//总条数
    private int totalCount;
    //分页开始下标
    private int start = 0;
    //偏移量
    private int offset = 16;
    //
    private int pageSize = 20 ;
    //总页数
    private int pageNo = 1 ;
    
//排序
    private String order ;
    private String sort ;
    
}

Mapper的写法

<!-- 查询消息总条数 -->
<select id="selectCountAll" resultType="java.lang.Integer">
select count(*) 
from qxz_customs_news_info 
where custom_id = #{customId} and news_ope="0"
</select>

<!-- 通过用户名查询所有消息 -->
<select id="selectNewsByCustomId" resultMap="News" parameterType="map">
select *
from qxz_customs_news_info 
where custom_id = #{customId} and news_ope="0"
order by update_date desc
<include refid="pages" />
</select>

<sql id="pages">
limit #{start},#{offset}
</sql>

Controller的写法

 

@RequestMapping("/selectNewsByCustomId")
@ResponseBody
public Map<String,Object> selectNewsByCustomId(HttpServletRequest req,int page){
    HttpSession session = req.getSession();
    CustomsInfo customInfo = (CustomsInfo) session.getAttribute("custom");
    String customId = customInfo.getCustomId();
    Map<String,Object> map = new HashMap<String,Object>();
    Map<String,Object> map1 = new HashMap<String,Object>();
    map1.put("customId", customId);
    PageOrder order = new PageOrder();
    order.setOffset(19);
    order.setRows(20);
    order.setPage(page);

    PageUtils util = new PageUtils();
    int count = newsService.selectCountAll(customId);
    util.getPageMap(map1, order, count);
    List<News> news = newsService.selectNewsByCustomId(map1);
    map.put("news", news);
    map.put("count", count);
    int allCount = newsService.selectCountAll(customId);
    int notReadCount = newsService.selectWeiDuCount(customId);
    map.put("allCount", allCount);
    map.put("notReadCount", notReadCount);
return map;
}

JS的写法

 

需要引入

<link rel="stylesheet" href="css/laypage.css">

<script src="js/jquery-1.8.3.min.js" type="text/javascript"></script>

<script src="<%=basePath%>js/laypage.js" type="text/javascript"></script>

function news(curr){ 调用时 传1 即可
$("#newsTable").html(""); 
var newsTableTitle = 
"<tr class='table_toubu table_yanse'>"+
        "<td width='30'></td>"+
        "<td width='50'>序号</td>"+
        "<td>消息标题</td>"+
        "<td width='130'>时间</td>"+
        "<td width='50'>操作</td>"+
    "</tr>";
    $("#newsTable").append(newsTableTitle);
$.post("../news/selectNewsByCustomId",{"page":curr},function(data){
$('#allCount').empty().append(data.allCount);
$('#notReadCount').empty().append(data.allCount-data.notReadCount);
 $.each(data.news,function(i,everyNew){
var image = null;
if(everyNew.newsType=="1"){//已读
image="../images/xx_ydxx.png";
}else{
image="../images/xx_wdxx.png";
}
var num = i+1;
var time =  getMyDate(everyNew.newsTime);
var neww= 
"<tr class='table_toubu'>"+
                   "<td><img src='"+image+"'/><input type='hidden' id='newsKeyId"+i+"' value='"+everyNew.keyId+"'></input></td>"+
                   "<td>"+num+"</td>"+
                   "<td><a href='javascript:void(0)' onclick='box(this)'>"+everyNew.newsTitle+"</a></td>"+
                   "<td class='tableTime'>"+time+"</td>"+
                   "<td><i onclick='deleteNews(this);'>删除</i></td>"+
               "</tr>";
$("#newsTable").append(neww); 
}); 
 laypage({//分页
       cont: 'newsfenye', //容器。值支持id名、原生dom对象,jquery对象。【如该容器为】:<div id="page1"></div>
       pages: Math.ceil(data.count/20), //通过后台拿到的总页数
       curr: curr, //当前页
       jump: function(obj, first){ //触发分页后的回调
           if(!first){  //点击跳页触发函数自身,并传递当前页:obj.curr
            curr=obj.curr;
            news(curr);//调自身函数
           }
       }
  })
});
  
}

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
layui.treegrid 是一款能够实现树状表格的 JavaScript 插件,让表格数据以树状形式展现,且支持单元格合并和拖拽调整列宽等功能。但是,由于树状表格的结构比较复杂,因此 layui.treegrid 并未提供官方的分页功能。 不过,我们可以通过一些方法实现 layui.treegrid 分页。首先,我们可以使用其他的分页插件来对表格进行分页处理,例如 Layui 官网提供的 laypage 官方分页组件。我们只需要将 laypage 分页组件和 layui.treegrid 表格配合使用即可。 其次,我们也可以通过 AJAX 加载数据的方式实现分页。这种方式需要我们在后端编写相应的分页代码,将不同页码的数据传输到前端,layui.treegrid 会将这些数据渲染成树状表格形式。在这种方式下,我们需要重写 layui.treegrid 的加载数据函数,即重写“treegrid.render”方法,使其能够接受分页数据并进行相应渲染。 无论采用哪种方式,都需要注意以下几点:页面切换时需要先销毁之前的 layui.treegrid 对象并重新构建,同时在加载数据和渲染表格时,需将数据和表格数据格式一一对应。此外,还要考虑到前端页面和后台数据库的性能问题,避免出现内存泄漏或处理过慢等问题。 总体来说,layui.treegrid 分页并不难实现,只需要熟悉 layui 和树状表格原理,合理运用相关技术,就可以实现我们需求的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值