1条回答 默认 最新
- foreach_break 2015-04-26 19:43关注
不清楚你的
BlogManager.GetAll
函数的实现。
根据你的调用,我猜测第二个参数你写错了。
如果你可以发一下这个函数的实现就明白了。分页的方法:
1. 你要考虑怎么把页码关联到html元素上
比如用span元素,表示第9页:html
<span>9</span>
2. 你要考虑怎么在用户点击这个页码时,向服务端传递页码,这可以有两种方式
用html的<a/>
标签来做:<a href="http://host:port/blog.aspx?pagenum=9">9</a>
用javascript来做:
获取你的页码控件所关联的页码,get或者post你能处理分页记录返回的aspx页面或httphandler.在服务端,你拿到了页码后,过程大概如下,伪代码描述:
//pageNum是页码,页码从1开始 //size是每页大小,一页都少个记录 //这个函数返回应该跳过多少个记录,记录来自数据库的表或者你其它数据集合 public int getSkipCount(int pageNum,int size) { return (pageNum - 1) * size; } //这个函数返回你要的记录 public List getRecords(int pageNum,int pageSize) { RetFromDatabase ret = database.poll(pageNum,pageSize); } public RetFromDatabase poll(int pageNum,int pageSize) { //这个是你要跳过的数据 int SKIP_COUNT = getSkipCount(pageNum,pageSize); int COVER_COUNT = SKIP_COUNT + pageSize; //这里是你从数据库或其它数据源获取数据的代码 //如果你从sql中获取数据,会类似这样 /* select user.id,tmp.total from user left join /*COVER_COUNT = SKIP_COUNT + PAGE_SIZE */ (select top COVER_COUNT id,row_number() over (order by id) total from user) as tmp on user.id equals tmp.id where user.id > SKIP_COUNT */ //如果你从其它数据源获取数据,会类似这样 db.user.find().sort({"_id":1}).skip(SKIP_COUNT).limit(pageSize); } //TRecord:你的记录类型 //这个类 public class RetFromDatabase<TRecord> { public int total; public IList<TRecord> records; }
解决 无用评论 打赏 举报
悬赏问题
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 spring后端vue前端
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥65 汇编语言除法溢出问题