MVVM分页

本文介绍了在MVVM架构中实现分页功能的方法。首先设置了分页所需的属性,如最大页、总条数和当前页。接着通过Linq查询数据库,筛选出符合条件的收入记录并绑定到临时表格。在处理日期筛选后,根据总数计算分页的页数和索引。最后,设置分页属性,如当前页、总页数、总条数,并将数据绑定到表格展示。如果数据为空,则显示相应提示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
分页这块的属性绑定通过页面可以看到有:最大页,就是最后一页、总条数,就是左边那块的总条数绑定,当前页,就是(第页)跳转页跳转到页,然后是表格的收入记录的绑定。
第三块位置则是分页操作的局部变量
在这里插入图片描述
在这里插入图片描述
当属性全部设置好之后,就来写方法的代码, 已知条件:
在这里插入图片描述
总条数是用showCount来设置的,这个可以根据自己页面的大小来决定多少,
在这里插入图片描述
创建一个方法,trycatch捕捉错误,然后清空页面显示临时表的数据,然后设置每一页要显示的条数为13,接着就是用linq语句查询到收入的数据,并且赋值给临时表格listIncomes,
From tb账号明细表 in 数据库.账号明细表
条件 tb账号明细表.资金状况 = 收入
查询 new AccountVO(临时存放物理模型)
{
账号明细ID
金额
资金来由
时间
备注
资金状况
}.ToList();
Linq语句写好后,还需要判断日期是否选中,日期包括开始日期和结束日期。
首先判断不能为空,然后进行类型转换,将开始日期和结束日期转换为DateTime类型。
在这里插入图片描述
日期筛选
数据库的数据>=decStart(页面中选中的开始日期)并且数据库中的数据<=decEnd(页面中选中的结束日期).ToList();
在这里插入图片描述
count总数等于ListIncomes临时列表的总数。
判断总数是否大于0,大于0的话进行下一步,首先for循环,自定义序号,i+1;
在这里插入图片描述
remainder定义的是分页后的余数,余数=数据库中的条数除以显示的条数,如果除的尽,则显示为一页,除不尽的话,就将剩余的分为第二页,在第二页中显示。
在这里插入图片描述
最后一条数据的索引,则是总数减去1,则是最大的索引。
判断count总数是否小于每一页要显示的条数13
然后是判断总数是否小于设置的每一页显示的条数showCount,这里分为两种情况,一种是小于的情况,一种是大于的情况首先是小于的情况:小于的情况下,设置总页数,将余数=总条数,用for循环赋值
在这里插入图片描述
大于的情况下,也存在两种情况 26 % 13 =0 /13 % 13=0一种是超出一页的情况,一种是刚好一页的情况。超出的情况下 设置总页数=总条数(数据库中总条数)/每一页显示的条数(13)
在这里插入图片描述
余数大于0,页数则是(count/showCount)+1
在这里插入图片描述
最后是for循环添加数据。
在这里插入图片描述
然后是分页的属性设置,当前页数,第一页,最后一页数据开始索引则是allPage总页数减去1在乘以showCount显示的总条数,这就是最后一页数据的开始索引,最大页就是总页数,总条数就是count总数,当前页就是首页,然后绑定表格数据。
在这里插入图片描述
在这里插入图片描述

否则显示消息框,提示数据为空,并且将最大页总条数设置为0,当前页为1页,表格数据为null空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值