基于bs_pagination插件的分页查询功能

bs_pagination插件是前端插件:使用步骤可以参考:

https://blog.csdn.net/weixin_54401017/article/details/125084478

bs_pagination插件的官方使用文档:

https://labs.pontikis.net/bs_pagination/docs/

分析:分页查询是局部刷新页面所以需要用到异步请求

前端搜集到参数后通过异步请求发送给controller层,控制层在调服务层,服务层在调用mapper,mapper查询到结果后依次返回给controller层,最后返回给前台。

mapper层:可以看看(sql语句):https://blog.csdn.net/weixin_54401017/article/details/125106203

service层:

  @Override
    public int queryCountOfActivityByCondition(Map<String, Object> map) {
        return activityMapper.selectConuntOfActivityByCondition(map);
    }

controller层:

  @RequestMapping("/workbench/activity/queryActivityByConditionForPage.do")
    @ResponseBody
    public Object queryActivityByConditionForPage(String name,String owner,String startdate,String enddate,int pageNo,int pageSize){
        //封装参数
        Map<String,Object> map = new HashMap<>();
        map.put("activityName",name);
        map.put("owner",owner);
        map.put("startDate",startdate);
        map.put("endDate",enddate);
        map.put("beginNo",(pageNo-1)*pageSize);
        map.put("pageSize",pageSize);

        //调用Service层方法
        List<Activity> activityList = activityService.queryActivityByConditionForPage(map);
        int totalRows = activityService.queryCountOfActivityByCondition(map);

        System.out.println("++++_______________++++");
        System.out.println(activityList.toString());
        System.out.println(totalRows);

        //根据查询结果,生成响应信息
        Map<String,Object> retMap = new HashMap<>();
        retMap.put("activityList",activityList);
        retMap.put("totalRows",totalRows);
        return retMap;//会自动转成json字符串  实体类也是自动转换成json字符串(集合,数组,实体类,基本数据类型)
    }

jsp中:这里理解$.each()与jstl中foreach的区别:简单解释是jstl中的foreach主要用于作用域中的数据。

function queryActivityByConditionForPage(pageNo,pageSize) {
       //收集参数
		var activityName = $("#query-name").val();
		var owner = $("#query-owner").val();
		var startDate = $("#query-startDate").val();
		var endDate = $("#query-endDate").val();
		//var pageNo = 1;
		//var pageSize=10;//默认为10条
		//发送异步请求
		$.ajax({
			url: 'workbench/activity/queryActivityByConditionForPage.do',
			data:{
				name:activityName,
				owner:owner,
				startdate:startDate,
				enddate:endDate,
				pageNo:pageNo,
				pageSize:pageSize,
			},
			type: 'post',
			dataType: 'json',
			success:function (data) {
				//$("#totalRowsB").text(data.totalRows);//显示总条数
				//显示市场活动列表
				//遍历activityList,显示所有行数据
				var htmlStr = "";
				$.each(data.activityList,function (index,obj) {
					htmlStr+="<tr class=\"active\">"
					htmlStr+="<td><input type=\"checkbox\" value=\""+obj.id+"\" /></td>";
					htmlStr+="<td><a style=\"text-decoration: none; cursor: pointer;\" onclick=\"window.location.href='detail.html';\">"+obj.name+"</a></td>";
					htmlStr+="<td>"+obj.owner+"</td>";
					htmlStr+="<td>"+obj.startdate+"</td>";
					htmlStr+="<td>"+obj.enddate+"</td>";
					htmlStr+="</tr>";
				});
				$("#tBody").html(htmlStr);

				//计算总页数
				var totalPages = 1;
				if (data.totalRows%pageSize==0){
					totalPages=data.totalRows/pageSize;
				}else {
					totalPages=parseInt(data.totalRows/pageSize)+1;
				}

				//对容器调用bs_pagination工具函数,显示翻页信息
				$("#demo_pag1").bs_pagination({
					currentPage:pageNo,//当前的页号
					rowsPerPage:pageSize,//每页显示条数
					totalRows:data.totalRows,//总条数
					totalPages:totalPages,//总页数

					visiblePageLinks: 5,//最多可以显示的卡片数

					showGoToPage: true,//是否显示“跳转到”部分,默认true,--显示
					showRowsPerPage: true,//是否显示“每页显示条数”部分。默认true--显示
					showRowsInfo: true,//是否显示当前页的一些信息。默认true--显示

					//用户每次切换页号,都自动触发本函数
					//每次返回切换页号之后的pageNo和pageSize
					onChangePage:function (event,pageObj) {
                         queryActivityByConditionForPage(pageObj.currentPage,pageObj.rowsPerPage);
					}
				})
			}
		});
	}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值