当前位置:编程学习 > C#/ASP.NET >>

ASP.NET 分页功能

现需要写个提供下载ppt的网站,想要实现分页显示,又不想用自带的控件,不知道该怎么办啊 ,希望各路豪杰指点指点啊 --------------------编程问答-------------------- 其实ObjectDataSource就支持存储过程分页。

如果不涉及Sort,大概的步骤是:
1、写一个存储过程,如果是sql Server 05/08,那么
create proc 存储过程名
(
@startRowIndex int,
@maximumRows int,
@sortExpression nvarchar(50)
)
as
IF LEN(@sortExpression) = 0
    SET @sortExpression = '字段名 DESC'

DECLARE @sql nvarchar(4000)

SET @sql = 'select 字段列表 from (select 字段列表, ROW_NUMBER() OVER (ORDER BY ' + @sortExpression + ') AS RowRank FROM 表或视图名) as 随便起一个名 WHERE RowRank > ' + CONVERT(nvarchar(10),@startRowIndex) + ' AND RowRank <= (' + CONVERT(nvarchar(10), @startRowIndex) + '+' CONVERT(nvarchar(10),@maximumRows) + ')'

EXEC sp_executesql @sql


存储过程中的@startRowIndex, @maximumRows, @sortExpression,这几个变量名最好不要变。

2、然后给项目加一个数据集,Select方法选择这个存储过程。
3、在aspx上拖一个GridView,指定数据源为ObjectDataSource,Select方法选择XXDataAdapter.某某某。
ObjectDataSource的EnablePaging设为true,把<SelectParameters>通通删掉,因为startRowIndex,maximumRows会自动从GridView传到ObjectDataSource, ObjectDataSource的startRowIndexParameterName, maximumRowsParameterName保留原样,sortExpressionParameterName设为sortExpression....
好像差不多了。不过还有一个。。。

之前就要做的,就是在强类型数据集里加一个返回数据总数的东东,sql写成select count(*) from 表名。
ObjectDataSource的SelectCountMethod对应这个就行了。

大概步骤就这些。
--------------------编程问答-------------------- 存储过程分页 没怎么看懂 ~~~~(>_<)~~~~ ! --------------------编程问答-------------------- 用分页存储过程 在用上linkbutton控件 用url来传值 --------------------编程问答-------------------- 可以通过存储过程或者直接是 select top n 这样的形式实现
如果是用datagrid  或gridview这样控件分页的话网络上有很多。
可以到http://dotnet.aspx.cc/上面看看。 --------------------编程问答--------------------
引用 3 楼 vipyoumay 的回复:
用分页存储过程 在用上linkbutton控件 用url来传值

这位大哥能不能做一个给我呀,我急需要,呵呵。谢谢啦 --------------------编程问答-------------------- 分页的存储过程
create proc proc_page
@pagesize int, 
@pageindex int,当前页
@typeid int
as
declare @sql varchar(255)
set @sql='select top '+ str(@pagesize) + 'd.id,d.name,d.money,t.name,u.name,d.data '
+ ' from Details as d,type as t,userinfo as u'
+ ' where typeid='+ str(@typeid) +' and d.typeid=t.id and d.userid=u.id' 
+ ' and d.id not in (select top' +str((@pageindex-1) * @pagesize) +' id from Details where typeid=' +str(@typeid)+ ')'
exec(@sql)
GO
--------------------编程问答-------------------- AspnetPager
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,