求助:刷新后记忆滚动条的位置

做了一个子窗口提交后,刷新父窗口的cpt,父窗口刷新后是重新加载了,就跑到最上面了,如何能记住父窗口原来的位置

image.png

image.png

image.png

image.png

image.png

FineReport nhb2318 发布于 2021-9-9 19:27 (编辑于 2021-9-9 19:28)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
nhb2318Lv4初级互助
发布于2021-9-18 18:59

用锚点能达到效果,但是在刷新后位置会有变化,点击的时候获取锚点,锚点可能是屏幕的中间,加载后,锚点就跑到第一行,实事上单击的时候锚点并不在第一行。于是又研究了JS里,滚动条位置值,终于解决了。

监听键盘、鼠标事件,随时更新document.getElementById('frozen-center').scrollTop的值,读取到参数面板控件里,然后在加载成功后,再读取这个值,读取出来再设置scrollTop的值。这样,刷新后就可以直接跳转到那个位置了,和没刷新前的位置保持一致。

  • 马生 马生 这个具体的实现代码可以给出来参考下吗?
    2021-12-02 09:30 
最佳回答
0
luojian0323Lv7资深互助
发布于2021-9-9 19:55(编辑于 2021-9-10 10:00)

了解一下锚点的概念

https://help.fanruan.com/finereport/doc-view-2498.html

你点击的时候,把锚点位置做为参数传给报表。然后带上这个参数刷新。

-----------------------------------------更新回答---------------------------------------

父窗口添加加载结束事件,事件窗口右上角添加参数或者参数栏添加控件参数比如 para值为:$para    (从子窗口传递过来的参数值,名称随意 ) 事件 代码:  if(para.toString().length>0){location.href = "#"+para;} 子窗口刷新父报表可设置带参刷新 ,比如 var para=contentPane.getCellValue(A1)//假设锚点值被你存到A1单元格中了 var REPORT_URL='${servletURL}?reportlet=目录/报表名.cpt&para='+para; parent.location=encodeURI(REPORT_URL);

  • nhb2318 nhb2318(提问者) 如何带参数刷新?代码?比如说我要让父窗口跳转到“#70”,怎么弄? 我设置了window.parent.location.href = \"#70\",发现子窗口就变成了父窗口。我想要父窗口跳转,不是子窗口跳转
    2021-09-10 00:59 
  • luojian0323 luojian0323 回复 nhb2318(提问者) 打开子窗口的时候,是操作不了父窗口的呀。你需要关闭子窗口才能操作父窗口。
    2021-09-10 08:23 
  • nhb2318 nhb2318(提问者) 回复 luojian0323 就是说先关闭子窗口,再刷新父窗口,最后父窗口跳转指定行呀
    2021-09-10 08:51 
  • luojian0323 luojian0323 回复 nhb2318(提问者) 子窗口关闭了,怎么还会跳转到子窗口。不合理啊。 你代码怎么写的?
    2021-09-10 08:53 
  • luojian0323 luojian0323 回复 nhb2318(提问者) 点击待审核 的时候,把单元格锚点值传给子窗口,子窗口设置一个隐藏单元格接收参数,或者隐藏控件接收参数 子窗口操作完成后,把锚点值再次传给父窗口,实现父窗口的锚点记录。 前提是你的父窗口每一行的序号要设置好id值 锚点是根据id值定位的。
    2021-09-10 08:56 
  • 1关注人数
  • 750浏览人数
  • 最后回答于:2021-9-18 18:59
    请选择关闭问题的原因
    确定 取消
    返回顶部