如何让光标跳到cxgrid的指定行

ccTwo 2018-07-12 05:35:01
cxgrid显示的是数据库的内容,有几百条数据,
我用 cxGridDBTableView.Controller.FocusedRowIndex:=50,但是无法跳到指定的第50行,只要行数大于43的就无法跳到。我试了一下 cxGridDBTableView.Controller.getrecount 结果等于43,但是实际的数据是有几百条的。
...全文
429 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
doloopcn 2018-07-13
  • 打赏
  • 举报
回复
cxGrid关联的数据集(QUERY)中设置RecNo就可以了,如楼上的
qry1.RecNo:=xx;
天行归来 2018-07-13
  • 打赏
  • 举报
回复
引用 6 楼 qq_27335331 的回复:
楼主结帖总结
qry1.RecNo:=xx; 可以跳到具体的行;

还发现 qry1.Locate('Cname', Cname, [loCaseInsensitive]);就可以直接根据值跳到指定行。(qry1.Locate(列名,值,可不填));


记录集游标位置发生变化,对应数据感知控件呈现数据也会跟着变,根据这个原则,不管locate还是通过设置recNO,都是可以的。
还有个需要注意的是,在做数据集遍历的时候,为了防止数据感知控件刷新带来不好体验和降低遍历效率,可以用记住书签位置,然后disableControl,遍历结束后重新定位记住的书签,然后enableControl。
ccTwo 2018-07-13
  • 打赏
  • 举报
回复
楼主结帖总结
qry1.RecNo:=xx; 可以跳到具体的行;

还发现 qry1.Locate('Cname', Cname, [loCaseInsensitive]);就可以直接根据值跳到指定行。(qry1.Locate(列名,值,可不填));
天行归来 2018-07-12
  • 打赏
  • 举报
回复
cxGridDBTableView.DataSource.DataSet.RecNo := 50;
//没有装cxGrid,以上目的是找出grid关联的dataset,通过设置dataset.RecNo实现定位

如果可以直接获取DataSet,如ADOQuery.RecNo := 50; 也是一样
ccTwo 2018-07-12
  • 打赏
  • 举报
回复
引用 1 楼 lynmison 的回复:
通过记录定位,就可以自动跳转

不好意思可以说的详细些吗
ccTwo 2018-07-12
  • 打赏
  • 举报
回复
不好意思请问可以说的详细一点吗
天行归来 2018-07-12
  • 打赏
  • 举报
回复
通过记录定位,就可以自动跳转

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧