yaoxiaowen_91 2015-04-26 15:58 采纳率: 0%
浏览 1520

asp.net 分页跳转问题

图片说明
图片说明
点击第二分页,却跳到第一。哪里代码出问题?

  • 写回答

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;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?