兄弟们,你们在2.0中使用GridView控件时,分页是怎么做的啊?

diandian82 2006-11-02 11:06:43
如果使用vs提供的DataSource控件,可以轻松实现分页,根本不需要写任何代码.

但我怀疑他的效率问题.是不是每次都把所有数据读出来了?哪位仁兄有比较不错的方法希望分享一下,谢谢!
...全文
385 28 打赏 收藏 举报
写回复
28 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
fxqyyzg 2006-11-04
  • 打赏
  • 举报
回复
详细解决方法

http://www.4guysfromrolla.com/ASPScripts/PrintPage.asp?REF=%2Fwebtech%2F042606-1.shtml

据说使最快的方法
fxqyyzg 2006-11-04
  • 打赏
  • 举报
回复
Declare @ID int
Declare @MoveRecords int

--@CurrentPage和@PageSize是传入参数
Set @MoveRecords=@CurrentPage * @PageSize+1

--下面两行实现快速滚动到我们要取的数据的行,并把ID记录下来
Set Rowcount @MoveRecords
Select @ID=ID from Table1 Order by ID

Set Rowcount @PageSize
--最恨为了减少麻烦使用*了,但是在这里为了说明方便,暂时用一下
Select * From Table1 Where ID>=@ID Order By ID
Set Rowcount 0

这是用setrowcount方法写的一个存储过程,但是这个有点问题,就是页非常多时候会慢,应当借助一个临时表来作
fxqyyzg 2006-11-04
  • 打赏
  • 举报
回复
我所知道的方法set rowcount和row_number() over()还有top

都是用存储过程作
flagfly 2006-11-04
  • 打赏
  • 举报
回复
下次用用selectmethod
diandian82 2006-11-03
  • 打赏
  • 举报
回复
up
diandian82 2006-11-03
  • 打赏
  • 举报
回复
还有一点就是,你们的footer是怎么控制的?如果根据存储过程进行分页是自己动态生成的还是使用系统的?
loveyzy 2006-11-03
  • 打赏
  • 举报
回复
我的gridview是自己手动分页的(没有通过别的控件,即一次读取多少),结合了asp.net ajax,无刷新
jz630 2006-11-03
  • 打赏
  • 举报
回复
SelectMethod还真没用过!
cat_hsfz 2006-11-03
  • 打赏
  • 举报
回复
到底每次取多少数据,视乎你用什么DataSource控件(后手动提供DataSource):

1.手动提供DataSource,然后DataBind,这是ASP.NET 2.0最不提倡的做法,每次翻页你都需要重新DataBind,此时你需要提供完整的DataSource,而GridView仅仅使用当前显示页的数据。

2.SqlDataSource控件或ObjectDataSource控件,SelectMethod默认是仅仅传递与分页无关的查询参数,无论查询结果有多少页,都全部返回,然后控件选出当前页的数据提供给GridView。但事实上上述两个控件的SelectMethod还能提供多3个(int pageIndex, int pageSize, out int totalRecords),其中第一、二个参数由控件传入,指定要获取的页数据;第三个数据由SelectMethod指定的SQL语句或者DataObject的方法传出,表示这个SelectMethod总共能返回多少数据。

如果你使用控件的配置向导,你将看不到上述3个参数的设置,这样你总是使用低效率的方法。
diandian82 2006-11-03
  • 打赏
  • 举报
回复
怎么没人了
diandian82 2006-11-03
  • 打赏
  • 举报
回复
还有一点就是,你们的footer是怎么控制的?如果根据存储过程进行分页是自己动态生成的还是使用系统的?
我是丁学 2006-11-02
  • 打赏
  • 举报
回复
数据量小的话,就直接用了,开发效率很重要的
如果数据量大的话,用存储过程分页,大数据量系统自动的分页太慢了,严重影响速度
myminimouse 2006-11-02
  • 打赏
  • 举报
回复
http://www.cnblogs.com/ilovejolly/archive/2006/11/02/523992.html
diandian82 2006-11-02
  • 打赏
  • 举报
回复
如果使用存储过程进行分页的话,是不是就不需要DataSource控件le \
ye_zi 2006-11-02
  • 打赏
  • 举报
回复
大数据量不适合小数据量无所谓
ustbwuyi 2006-11-02
  • 打赏
  • 举报
回复
把全部数据都读出来肯定是不可取的..
ustbwuyi 2006-11-02
  • 打赏
  • 举报
回复
需要哪页的数据取哪页的,用异步回调,把页码传到服务器,服务器根据页码取相应的数据,转化成html代码后用异步回调传回页面,实现了无刷新,而且效率比较高
jackljane 2006-11-02
  • 打赏
  • 举报
回复
自带的控件是把全部数据读出来的 效率肯定不行
用sql2005 rownubmer 方法.每次只读一定的数据出来.
传页码参数进去读.
luanwey 2006-11-02
  • 打赏
  • 举报
回复
2005的存储过程分页。
http://www.cnblogs.com/Tracy-Chuang/archive/2006/10/23/537202.html
luanwey 2006-11-02
  • 打赏
  • 举报
回复
还是跟datagrid一样的问题。。大数据量不适合。小数据量无所谓。
加载更多回复(8)
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2006-11-02 11:06
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。