首页 新闻 会员 周边

ObjectDataSource 中的Start Row Index 和Maximum Rows 问题

0
悬赏园豆:40 [待解决问题]

看到一个文章关于C# 高效分页,但其中有几个问题不明白。

http://www.shangxueba.com/jingyan/104396.html

 

SQL

SELECT PriceRank, ProductName, UnitPrice
       FROM
       (SELECT ProductName, UnitPrice,
       ROW_NUMBER() OVER(ORDER BY UnitPrice DESC) AS PriceRank
       FROM Products
       ) AS ProductsWithRowNumber
       WHERE PriceRank > StartRowIndex AND PriceRank <= (StartRowIndex + MaximumRows)

1、比如说有31条记录 ,分页 会 分成3个页面,

第一页 1--10条记录

第二页  11-20 条记录

第三页  21 条记录

按他们说的是第一页 StartRowIndexMaximumRows 应该是多少?

StartRowIndex=1       StartRowIndex+MaximumRows=11?

如果这样,那SQL 语句 不就是  >1  and  <=11了? 显示变以了2-11条记录?

MaximumRows 是每页显示的条数?  是说我设置了一页显示10条记录,那么

MaximumRows=10?

一共21条记录,那第三页的时候  难道是  >21 and <=31?

 

Start Row Index – 页面里显示数据的第一行的索引; 这个值可以通过页的索引乘每 页显示的记录的条数加1得到. 例如, 如果一页显示10条数据, 那么对第一页来说 (第一页的索引为0), 第一行的索引为0 * 10 + 1, or 1; 对第二页来说(索引为 1), 第一行的索引为1 * 10 + 1,即 11.

 

Maximum Rows – 每页显示 的最多记录的条数. 之所以称为“maximum” rows 是由于最后一页显 示的数据可能会比page size要小. 比如, 当以每页10条记录来显示81条时, 最后 一页也就是第九页只包含一条记录. 没有页面显示的记录条数会大于Maximum Rows 的值.

Youngli的主页 Youngli | 初学一级 | 园豆:119
提问于:2014-07-16 15:12
< >
分享
所有回答(2)
0

原文中已经说了“ObjectDataSource 提供的StartRowIndex是从0开始的,而ROW_NUMBER()的值从1开 始.”

邀月 | 园豆:25475 (高人七级) | 2014-07-16 16:25

那他说的  这个

Start Row Index – 页面里显示数据的第一行的索引; 这个值可以通过页的索引乘每 页显示的记录的条数加1得到. 例如, 如果一页显示10条数据, 那么对第一页来说 (第一页的索引为0), 第一行的索引为0 * 10 + 1, or 1; 对第二页来说(索引为 1), 第一行的索引为1 * 10 + 1,即 11.

就是不对了吧

  如果是0 开始

那是不是

第一页就是  >0  and    <=10 呀?

第二页就是 >10  and   <=20?

第三页呢, >21  and <= ?  30  还是31?

支持(0) 反对(0) Youngli | 园豆:119 (初学一级) | 2014-07-16 16:29
0

试试Moon.Orm的分页

迅捷网络[来送福利] | 园豆:576 (小虾三级) | 2014-07-16 17:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册