帆软大数据自定义分页

第一步构建查询

1.自定义查询语句:${f}为开始页,${p}为一页数量,初始值如图

select * from table limit ${f},${p}

设置p的初始值,也可以在上图的参数写死,设置初始页面为第几页,默认为1(page的值)。 

 第二步:自定义按钮7个按钮:

设置填报或者分页预览的模板web属性,设置为该模板自定义:

然后设计加载结束事件

var toolbar = contentPane.toolbar;

var items = toolbar.options.items;

var customButton=items[2];//JQUERY取我们的工具栏上的按钮.items[2]代表的是第三个,也就是那个显示成文本框按钮。
//修正这个按钮的属性,让它变成文本类型,居中,鼠标放上次图标是编辑状态。
var cellValue = contentPane.curLGP.getCellValue("D1");//获取D1单元格的值就是page,也就是当前页。
customButton.setText(cellValue);


var total=contentPane.curLGP.getCellValue("C1");

if (total>parseInt(total)){
total=parseInt(total)+1;
}
contentPane.toolbar.options.items[4].setText(total);
//把总页数显示在第5个控件上,因为这个数值可能是小数,所以判断下要不要加一处理。
contentPane.toolbar.options.items[3].setText(contentPane.curLGP.getCellValue("E1"));

这几个值来自单元格的第一行:A1,B1,C1,D1,D1的单元格的值,其中C1为查询的总行数

=$page-1    =$page+1    ds2.G(zs)    =$page    ="/" 

定义第一个按钮首页的js

window.location.href="${servletURL}?viewlet=报表.cpt&op=write&page=1";//链接到fenye.cpt,page 参数=1,代表第一页。

第二个按钮上一页

var page= $("tr[tridx=0]","div.content-container").children().eq(0).html();  //取第一行第一个单元格内容。

if(page==0)

{

this.setEnable(false);

alert("页面超出指定的范围");

}

else

window.location.href="${servletURL}?viewlet=报表.cpt&op=write&page="+page//如果没有小于1就正常跳转,否则显示页面超过指定的范围,这个控件设置不可以使用。

第三个按钮当前页

var toolbar = contentPane.toolbar;

        var items = toolbar.options.items;

        var customButton=items[2];

        var inner = customButton.$table;

        var btnWrapper = $("em", inner);

var $input = $("input", btnWrapper);

//取这个控件

$input.blur(function(){

  var toolbar = contentPane.toolbar;

        var items = toolbar.options.items;

        var customButton=items[2];

        var inner = customButton.$table;

        var btnWrapper = $("em", inner);

var $input = $("input", btnWrapper);

var page=$input.val();

var total=$("tr[tridx=0]","div.content-container").children().eq(2).html(); 

if (total>parseInt(total)){total=parseInt(total)+1;

}

if(parseInt(page) > parseInt(total) || parseInt(page) < parseInt(1) )

{

alert("你输出的页数不再指定范围内");

}

else

window.location.href="${servletURL}?viewlet=报表.cpt&op=write&page="+page

});

 第四个按钮分页符:第5个按钮总页数,无js事件

第6个按钮下一页

var page= $("tr[tridx=0]","div.content-container").children().eq(1).html();  
var total=$("tr[tridx=0]","div.content-container").children().eq(2).html(); 
//JQURUY取下一页和总页数
      if (total>parseInt(total)){total=parseInt(total)+1;
     }
//判断总页数是不是整数,不是加一
      if(parseInt(page) > parseInt(total))
  {
this.setEnable(false);
alert("页数超出指定范围内");
}
else
window.location.href="${servletURL}?viewlet=报表.cpt&op=write&page="+page
//如果下一页在这个范围就跳转到那里

第7个按钮尾页

var total=$("tr[tridx=0]","div.content-container").children().eq(2).html();  
//取总页数。
if (total>parseInt(total)){total=parseInt(total)+1;
}
window.location.href="${servletURL}?viewlet=报表.cpt&op=write&page="+total
//判断总页数是不是整数,不是加一,并跳转到最后一页。

 第三部展示结果:

 

 

  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
MyBatis Plus提供了丰富的分页功能,但如果需要自定义分页逻辑,你可以按照以下步骤进行操作: 1. 创建一个自定义分页类,该类需要继承`com.baomidou.mybatisplus.extension.plugins.pagination.Page`,并重写其中的方法,以实现自定义分页逻辑。例如,可以根据特定条件进行数据筛选或排序。 ```java import com.baomidou.mybatisplus.extension.plugins.pagination.Page; public class CustomPage<T> extends Page<T> { // 重写构造方法或其他方法 @Override public List<T> getRecords() { // 自定义获取数据的逻辑 // 在这里可以根据条件进行数据筛选或排序 // 返回自定义的数据列表 } // 其他自定义方法 } ``` 2. 在Mapper接口中定义一个方法,用于执行自定义分页查询。该方法需要接受自定义分页类作为参数,并返回自定义分页类的对象。 ```java import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface YourMapper extends BaseMapper<YourEntity> { CustomPage<YourEntity> customSelectPage(CustomPage<YourEntity> page); // 其他方法 } ``` 3. 在对应的Mapper XML文件中编写SQL语句,实现自定义分页查询逻辑。可以使用MyBatis的动态SQL语句来根据传入的参数进行不同的处理。 ```xml <select id="customSelectPage" parameterType="com.yourpackage.CustomPage" resultMap="YourResultMap"> SELECT * FROM your_table WHERE ... ORDER BY ... LIMIT #{offset}, #{size} </select> ``` 4. 在Service层中调用自定义分页查询方法,并传入自定义分页类对象作为参数。 ```java import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @Service public class YourServiceImpl extends ServiceImpl<YourMapper, YourEntity> implements YourService { @Override public CustomPage<YourEntity> customSelectPage(CustomPage<YourEntity> page) { return baseMapper.customSelectPage(page); } // 其他方法 } ``` 5. 最后,在Controller层中调用Service层的自定义分页查询方法,并将结果返回给前端。 ```java @RestController @RequestMapping("/your") public class YourController { @Autowired private YourService yourService; @GetMapping("/customPage") public CustomPage<YourEntity> customPage(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize) { CustomPage<YourEntity> page = new CustomPage<>(pageNum, pageSize); return yourService.customSelectPage(page); } // 其他接口 } ``` 以上是使用MyBatis Plus实现自定义分页的简单示例,你可以根据实际需求进行相应的修改和扩展。希望对你有帮助!
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值