1. 获取控件对象
功能 | 接口 | 参数说明 | 示例 | 支持移动端 |
---|---|---|---|---|
获取参数面板控件 | _g().parameterEl.getWidgetByName(widgetname) | widgetname:控件名称 | _g().parameterEl.getWidgetByName("area") | 是 |
获取单元格控件 | _g().getWidgetByName(widgetname) | widgetname:控件名称 | _g().getWidgetByName("area") | 是 |
_g().getWidgetByCell(cell) | cell:单元格编号 | _g().getWidgetByCell("A1") | 是 | |
_g().getWidgetByCell(FR.columnRow2CellStr({col:colindex, row:rowindex})) | colindex:列号,从0开始 rowindex:行号,从0开始 | _g().getWidgetByCell(FR.columnRow2CellStr({col:0, row:0})) | 否 | |
获取单元格控件数组 | _g().getWidgetsByName(widgetname) | widgetname:控件名称 | _g().getWidgetsByName("area") | 是 |
获取当前控件 注:如用 setTimeout 设置了延时则不可使用 | this | 无 | this | 是 |
2. 常用方法
以下的 Widget 为【1. 获取控件对象】中使用相关接口获取到的控件对象。
功能 | 接口 | 参数说明 | 示例 | 支持移动端 |
---|---|---|---|---|
通用 | ||||
获取控件实际值 | Widget.getValue() | 无 | Widget.getValue() | 是 |
获取控件显示值 | Widget.getText() | 无 | Widget.getText() | 是 |
给控件赋实际值 | Widget.setValue(value,boolean) | value:需要赋的值 boolean:触发联动(true)和不触发联动(false),默认为false | Widget.setValue("area",true) | 是 |
给控件赋显示值 | Widget.setText(value) | value:需要赋的值 | Widget.setText("地区") | 是 |
清空控件 注:不支持下拉树 | Widget.reset() | 无 | Widget.reset() | 是 |
设置水印 | Widget.setWaterMark(value) | value:水印文字 | Widget.setWaterMark("帆软") | 否 |
判断控件是否可见 | Widget.isVisible() | 无 | Widget.isVisible() | 是 |
判断控件是否可用 | Widget.isEnabled() | 无 | Widget.isEnabled() | 是 |
设置控件是否可见 | Widget.setVisible(boolean) | boolean:true(可见)和false(不可见) | Widget.setVisible(false) | 是 |
设置控件是否可用 | Widget.setEnable(boolean) | boolean:true(可用)和false(不可用) | Widget.setEnable(false) | 是 |
设置控件是否可以为空 注:该方法修改后的属性在数据校验时不会识别 | Widget.options.allowBlank=boolean | boolean:true(可空)和false(不可空) | Widget.options.allowBlank=false | 否 |
获取单元格控件所在的单元格编号 | Widget.options.location | 无 | Widget.options.location | 否 |
设置控件焦点 注:使用此方法必须设置延时,参考示例 | Widget.editComp.focus() | 无 |
| 否 |
触发控件的事件 | Widget.fireEvent(eventname) | eventname:事件名称。常用的事件如下:
| Widget.fireEvent("click") | 是 |
下拉(复选)框 | ||||
设置控件是否可以自定义值 | Widget.options.customData=boolean | boolean:true(可自定义)和false(不可自定义) | Widget.options.customData=false | 否 |
判断值是否在数据字典中 | Widget.isValueInList(value) | value:需要判断的值 | Widget.isValueInList("牛奶") | 否 |
修改下拉框选项的“不选”字样 | Widget.options.name4Empty=value | value:修改后的文字 | Widget.options.name4Empty="全部" | 否 |
设置下拉(复选)框选项的最大显示个数 | Widget.options.maxCount=num | num:最大个数 | Widget.options.maxCount=5 | 否 |
设置下拉(复选)框选项的间隔 | Widget.options.sonHeight=num | num:间隔 | Widget.options.sonHeight=25 | 否 |
全选下拉复选框的值 | Widget.doSelectAll() | 无 | Widget.doSelectAll() | 否 |
取消全选下拉复选框的值 | Widget.deSelectAll() | 无 | Widget.deSelectAll() | 否 |
数字控件 | ||||
设置是否允许小数 | Widget.options.allowDecimals=boolean | boolean:true(允许小数)和false(不允许小数) | Widget.options.allowDecimals=false | 否 |
设置允许的小数位数 | Widget.options.maxDecLength=num | num:允许的最大小数位数 | Widget.options.maxDecLength=2 | 否 |
设置是否允许负数 | Widget.options.allowNegative=boolean | boolean:true(允许负数)和false(不允许负数) | Widget.options.allowNegative=false | 否 |
设置允许的最大值 | Widget.options.maxValue=num | num:最大值 | Widget.options.maxValue=10 | 否 |
设置允许的最小值 | Widget.options.minValue=num | num:最小值 | Widget.options.minValue=5 | 否 |
日期控件 | ||||
设置日期校验格式 | Widget.options.format=type | type:日期格式 | Widget.options.format="yyyy-MM" | 否 |
设置日期选择框样式 | Widget.viewMode=view | view:选择框样式。具体样式如下:
| Widget.viewMode=0 | 否 |
设置起始日期 | Widget.setStartDate(startdate) | startdate:起始日期,建议使用yyyy-MM-dd格式 | Widget.setStartDate("2021-01-05") | 否 |
设置结束日期 | Widget.setEndDate(enddate) | enddate:结束日期,建议使用yyyy-MM-dd格式 | Widget.setEndDate("2021-01-20") | 否 |
3. 注意事项
1)_g()是一种兼容的写法,在填报预览下,其等同于contentPane。
2)如果是在初始化事件中使用 JS 但未生效,可以尝试加上延时函数 setTimeout。示例如下。
setTimeout(function() {
_g().getWidgetByCell("A1").setEnable(false);
//将A1单元格控件设置为不可用
}, 500)
//延时0.5s执行
3)当使用了延时函数 setTimeout 时,this 对象就会失效,可以将 this 放在延时函数外进行赋值调用来避免。示例如下。
var widget=this;
setTimeout(function() {
widget.setEnable(false);
//将当前控件设置为不可用
}, 500)
//延时0.5s执行
4)当清空单元格控件时,建议同时清空控件值和单元格值,否则可能会出现清空失败的情况。示例如下。
_g().getWidgetByCell("A1").setValue("");
//清空A1单元格控件值
_g().curLGP.setCellValue("A1", "");
//清空A1单元格值
注:给单元格控件赋值时同理,最好同时给控件和控件所在单元格都赋值
5)如果控件设置了不能为空,则会使清空失效。设置了不允许自定义值,则只能赋数据字典中存在的值。
6)如果 Widget 是一个控件数组,则不能直接调用相关方法,需要通过遍历来实现。示例如下。
var widgets = _g().getWidgetsByName("demo");
//获取控件名称为demo的控件数组
for (i = 0; i < widgets.length; i++) {
widgets[i].setEnable(false);
//遍历禁用控件
}