tab布局点击事件
1.问题描述
页签式报表的需求,即需要点击某页签时,参数面板中的部分参数隐藏
点击标题0,只出现订单ID参数:

点击标题1,同时出现订单ID和运货商参数:
2.实现方法
在body组件上添加初始化后事件,在js中使用setTimeout函数来监听页签的事件状态,因为无法获取页签

所以这里通过JQuery 类名选择器,我们利用eq选择到我们的页签控件 绑定click事件
3. 示例
下面举一个简单的例子详细介绍下该方法:
3.1 新建表单
选择文件>新建表单,添加数据集ds1:SELECT * FROM S订单
3.2 表单设计
将参数面板和tab块拖拽至表单主体,点击模板>模板参数,新增两个参数,分别命名为订单ID和运货商,如下图:
将参数拖入参数面板(点击右上角全部添加),并新增一个标签页:

选中下拉框,分别设置两个参数的数据字典,如下:
在左上角当前控件后选择body,添加一个初始化后事件:
setTimeout(function(){ $(".fr-widget-click").eq( [index] ).bind("click",function(){ //TODO }); } ,100);
fr-widget-click 是这个页签div的样式。
如下图,使运货商参数在点击第一个标签页时隐藏,点击第二个标签页时出现:
完整代码如下:
setTimeout(function(){
$(".fr-widget-click").eq(3).bind("click",function(){
$("div[widgetname$='运货商']").show();
});
$(".fr-widget-click").eq(2).bind("click",function(){
$("div[widgetname$='运货商']").hide();
});
} ,100);
3.3 保存预览
保存模板,点击预览,效果如上图。
附件列表
主题: 二次开发

