1. 概述
1.1 问题描述在参数界面,单选按钮组在选中了一个选项后,如果用户再次点击这个选项,按钮会处于未选中状态,这样不够人性化。如果希望单选按钮组始终选中一个,这个要如何实现呢?
设置前:
设置后:
1.2 实现思路通过给控件添加【初始化后】和【状态改变】JavaScript 事件来实现! 初始化 脚本: - var self = this;
- //鼠标点击事件
- this.$container.on("mousedown", function() {
- //赋值全局变量 K
- self.options.K = self.getValue();
- })
- 状态改变 脚本:
- var value=this.getValue();
- if(value=="" || value==null){
- this.setValue(this.options.K);
- }
- 或者采用定位到指定控件的方法:
- var obj = this.options.form.getWidgetByName("radioGroup0");
- var value=obj.getValue();
- //不允许为空
- if(value=="" || value==null){
- this.setValue(this.options.K);
- }else{
- this.options.K=value;
- }
复制代码 2. 示例
2.1 单选按钮组属性设置1)在参数面板中添加单选按钮组控件和查询控件:
2)单选按钮组控件值默认为F,定义控件的数据字典为自定义,实际值分别为 F 和 M,显示值分别为女和男,如下图所示: 2.2 添加 JavaScript 事件1)选中按钮,添加【初始化后】事件: 2)选中按钮,添加【状态改变】事件: 2.3 预览效果保存报表,点击分页预览,报表效果如下图所示:
注:此方法不支持移动端。 3. 模板下载
已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\参数界面JS实例\02-JS实现单选按钮组始终保持选中某一选项.cpt
模板下载见附加
编辑于 2020-12-16 17:00
|