環境﹕NET2003
dategrid 分頁
每一次顯示10項,一般效果為﹕第一頁0-9﹐第二頁10-19﹐...我想達到:第一頁0-9﹐第二頁8-17﹐16-25...
即其中每一頁有重復顯示上一頁的最后兩條記錄。
請高手指點??

解决方案 »

  1.   

    那就不能用DataGrid自带的分页功能了,自己用Sql语句取数据吧
      

  2.   

    这只是怎么取数据的问题,分页你可以用DataGrid自定义分页功能,或者使用我写的免费的AspNetPager分页控件,取数据应该不是很难,每次取十条,第二页的记录是从第一页记录的第八条开始的,你可以看看我的AspNetpager的分页示例,稍微改一下其中的存储过程就可实现了。 AspNetPager的示例在这里: http://www.webdiyer.com
      

  3.   

    select Top 10 * from table1 where ID not in (select Top pageNum*8 ID from table1 order by ID) order by ID
      

  4.   

    webdiyer  你的控件太好使了 谢谢老大
      

  5.   


    用存储过程:
    create proc Page_Count
    (@Table  varchar(50), --表名
    @Filter varchar(1000),--返回字段:用','隔开;要返回全部字段时,用'*'号
    @Count int,           --每页显示记录数
    @id varchar(50),      --用来排序的ID
    @CurrPage int         --当前页数
    )
    as
        declare @Sql varchar(8000)
        if(@CurrPage=1)
        begin
            set @Sql='select top '+ cast(@Count as varchar) + ' '+ @Filter + ' from ' + @Table + ' order by ' + @id 
        end
        else
        begin
            set @Sql='select top '+ cast(@Count as varchar)  + ' '+  @Filter + ' from (select top '
            + cast((@CurrPage*@Count-(@CurrPage-1)*2) as varchar) +' *  from ' + @Table + ' order by ' + @id + ')a order by '+ @id +' desc'
        end
        print @sql
        EXEc(@Sql)调用:楼主每页显示10条记录,
    exec page_count  'sub','*',10,id,2这样可以达到楼主的要求。
      

  6.   

    補充:分頁 
    我的環境:NET2003,SQL   Server   &&   Oracle 
    前面有一個查詢條件,我想對查詢出來的數據進行分頁 我不想通過5樓的方式,因為他佔用很大的數據資源 有沒有好的佔用系統資源小的方法 請說詳細一點啊,小弟菜啊 請高手指點??