历史版本2 :JS实现点击查询后停留在当前查询的Tab页 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 需求分析编辑
在使用表单的TAB块功能时,我们经常会遇到类似这样的问题:当在一个TAB块中有多个TAB页存在,如果用户所处其他TAB页(非第一个TAB页),点击查询后,会自动跳转到第一个TAB页(如图一)。如何能实现:点击查询后,不自动跳转到第一个TAB页,还是在用户当前TAB页呢(如图二)?
图一:
图二:
2. 解决方案编辑
2.1 思路
通过在TAB块中设置JavaSprite脚本来实现此功能。先通过切换事件获取到用户当前TAB页的标题索引,然后在点击查询后,直接初始化定位到获取到的tab标题索引页。
(1)TAB切换事件:
setTimeout(function(){
//TAB切换后,获取到当前TAB块的标题索引
window.IndexNum=_g().getWidgetByName("tabpane0").getShowIndex();
},50);
(2)TAB初始化事件:
this.options.form.getWidgetByName("tabpane0").showCardByIndex(window.IndexNum);
2.2 示例
(1)打开 \WebReport\WEB-INF\reportlets\demo\newchart\advanced\tab.frm 文件,新增一个参数界面,添加如下控件:
(2)选中TAB块控件,在右侧点击事件,新增一个Tab切换事件:
JS脚本:
setTimeout(function(){
//TAB切换后,获取到当前TAB块的标题索引
window.IndexNum=_g().getWidgetByName("tabpane0").getShowIndex();
},50);
(3)选中TAB块控件,在右侧点击事件,新增一个初始化后事件。
JS脚本:
this.options.form.getWidgetByName("tabpane0").showCardByIndex(window.IndexNum);
2.3 保存与预览
保存,点击表单预览,效果如上图二所示。