日期:2014-05-19  浏览次数:20390 次

AspNetPager控件小问题 AspNetPager1.RecordCount = (int)cmd.ExecuteScalar();这一句不明白
我看帮助文档的时候说RecordCount这个属性是当页面第一次加载时,应以编程方式将从存储过程或Sql语句中返回的数据表中所有要分页的记录的总数赋予该属性
应该赋给它使用的行才对  

但是赋给它的却是第一行的的一列   为什么啊  

我用的是存储过程:
这样的:
CREATE   procedure   pro_order
(@pagesize   int,
@pageindex   int,
@docount   bit)
as
set   nocount   on
if(@docount=1)
select   count(OrderID)   from   Orders
else
begin
declare   @indextable   table(id   int   identity(1,1),nid   int)
declare   @PageLowerBound   int
declare   @PageUpperBound   int
set   @PageLowerBound=(@pageindex-1)*@pagesize
set   @PageUpperBound=@PageLowerBound+@pagesize
set   rowcount   @PageUpperBound
insert   into   @indextable(nid)   select   OrderID   from   Orders   order   by   RequiredDate   desc
select   O.*   from   Orders   O,@indextable   t   where   O.OrderID=t.nid
and   t.id> @PageLowerBound   and   t.id <=@PageUpperBound   order   by   t.id
end
set   nocount   off

GO


------解决方案--------------------
@docount参数的值为true时返回的才是分页的总记录数,否则就是你上面说的第一条记录的第一列字段的值了。
------解决方案--------------------
对,楼主显然是没仔细看这一句
if(@docount=1)
select count(OrderID) from Orders
else
所以这个存储过程等于是有两个作用,当然LZ可以自己稍微改一下,只要自己理解就行,不一定全要用那一套的
------解决方案--------------------
哇,总裁亲自解答。
哈哈