父页面如何与子窗口相互传值

我是社区第66158位番薯,欢迎点我头像关注我哦~
最近经常遇到需要弹出窗口的页面,在需求上有父窗口向子窗口传参的,也有子窗口向父窗口传参的。
下面先说简单的,父窗口向子窗口传参:
这个根据帆软提供的传递参数的方法就行,帮助文档有很多方法。
思路都是获取到这个单元格的值,赋给一个参数,然后把这个参数传递到子页面。
一、超链接传递参数
QQ截图20171225144557.png
定义一个参数名称然后设置好需要传递的值,在子页面获取到这个参数就行了。
我这里用的是a,子页面上就写$a就可以获取到这个参数。
二、用按钮弹出iframe的方法
4%H8J)7L{%@ZCF3A(Z3}F{O.png
就是直接用js获取到单元格的值
  1. var F = contentPane.getWidgetByCell("B3").getValue();  
复制代码
然后在连接的最后加上&参数=值;
  1. iframe.attr("src","${servletURL}?reportlet=D2.cpt&op=write&id="+F);
复制代码
在子页面直接根据$id就可以获取到参数了。


接下来我们来说父窗口怎么获取到子窗口的值。
需求:子窗口的值保存或者是点击按钮之后,父窗口获取到一个值(比如A1单元格的值)。
思路一:如果父窗口全是展示,而且数量不是很大,那么子窗口点击保持后页面关闭,刷新父窗口,父窗口重新从数据库中读取。
思路二:如果父窗口有填报的值,那么把填报的值都暂存起来,然后刷新页面就可以了。
思路三:如果父窗口数据量很大,整体刷新页面不合适,那么就直接通过js获取到子页面的值赋给父页面。
方法一:
这个比较简单,只是需要在子窗口的web属性中设置一个填报成功事件就行了。
C`CH)Z%U(9UN84`J1U41O.png
  1. window.close();//关闭子页面
  2. window.parent.location.reload();//刷新父窗口
复制代码
方法二:
其实这个就是在页面刷新之前调用一下帆软自带的暂存按钮的js。
  1. window.parent.document.getElementById("fr-btn-StashButton").click();
复制代码
可以设置暂存按钮为不可见,这样的话就模拟用户点击暂存就行了。功能上可以不告诉用户有这个功能,反正你不说他们也不知道。(需求上没提的话
方法三
  1. var v3=window.parent.contentPane.curLGP.getCellValue("B1");
  2. //获取到父窗口上B1单元格的值
  3. window.parent.contentPane.setCellValue(0,1,0,"customer");  
  4. //给父窗口B1单元格的值赋值为customer
复制代码
这样就可以给单元格的实际值赋值了。
当然如果有更简单的方法,希望告诉我哟。。。
QQ:1176846029
编辑于 2017-12-25 16:22  
参与人数 +1 F豆 +10 理由
wlmqwl + 10 太棒了,给你32个赞,么么哒

查看全部评分

发表于 2018-5-2 13:26:33
6666666666
发表于 2018-11-15 16:33:50
6666666
发表于 2018-11-22 13:26:00
楼主真讲究,不想那些直接开口叫卖的
发表于 2019-5-14 15:09:57
现在就是遇到咯这个问题,正好试试。谢谢!
发表于 2019-9-26 15:58:01
请教下:
发表于 2019-9-26 16:00:38
请教下: 如果子窗口 上 获取了父窗口的值 作为参数查询出记录后,  想把子窗口内的A1,传给父窗口的B1。  此时应该用什么方式触发子窗口传值? 加按钮吗?   例如 选择 , 后子窗口关闭,父窗口上的B1 值 修改。能指导下吗?
发表于 2019-12-6 17:31:08
学习了,顶一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7回帖数 5关注人数 7948浏览人数
最后回复于:2019-12-6 17:31

返回顶部 返回列表