ASP的页面用分页显示的效果想必大家都知道。但如何在Delphi中的DBGrid上也拥有如此效果呢。我百思不得其解,往各位高手指点。
我设置了adoquery.recordset.pagesize以及其他一些recordset的属性没一点效果
郁闷中啊。。

解决方案 »

  1.   

    我以为用个变量+Query来实现,很简单的.
      

  2.   

    每次执行adoquery 的条数为你想要的一页显示的条数,加一个button 继续执行下一页,也就是查找后一页的记录数
      

  3.   

    同病相怜啊,我也被这个问题困扰,此问题的关键是在于取出翻页操作的当前指针(该指针可能会被用户更改),哪位大虾请赐教!我试把pageup pagedown虚拟键传给dbgrid,没有结果。。
      

  4.   

    好像可以定位dbgirde显示的纪录是第几条纪录吧!
    还可以控制一次显示纪录的个数!
    然后用一个变量控制页数就可以实现了!
    后者用book也可以
      

  5.   

    用SQL啊/*--分页方法:回复人: j9988(j9988) 
    --*/
    declare @sqlstr nvarchar(4000), --查询字符串
    @pagecount int, --第N页
    @pagesize int --每页行数select @pagecount=3,@pagesize=10
    ,@sqlstr='select * from sysobjects'set nocount on
    declare @P1 int, --P1是游标的id
    @rowcount intexec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
    select @rowcount as 总行数,ceiling(1.0*@rowcount/@pagesize) as 页数,@pagecount as 当前页
    set @pagecount=(@pagecount-1)*@pagesize+1
    exec sp_cursorfetch @P1,16,@pagecount,@pagesize 
    exec sp_cursorclose @P1