表格编辑器的可编程 API 说明 (适用于组件版本 0.1.8+)
InputObject 输入域对象
介绍
每个输入域都可以设置事件处理器,让开发者捕获事件,实现相关的高级效果。
【事件处理器函数】
/**
* @param inputObject {Object} 输入域对象本身
* @param zContext {Object} 即 Enhancer.ZContext 对象实例,包含当前表单依赖的变量数据。
*/
function(inputObject, zContext) {
//TODO: 处理一些事情
}
API
setValue(val) 给输入域赋值。注意,如果需要外部窗口感知数据变化,触发影响,需要进一步调用:inputObject.trig('Change')。
- @param val {Object} 符合输入域承载显示的值。
getValue() 获取输入域的值。
- @return {Object} 输入域的值。
getTypedValue() 获取经指定数据类型转换后的值。
- @return {Object} 输入域经您指定的数据类型转换后的值。
enable() 启用。
disable() 禁用。
show() 显示。
hide() 隐藏。
affected(zContext) 影响。可以重新按照当前上下文变量刷新数据。
readonly(readonly) 设置只读或恢复可写。
- @param readonly {Boolean} 是否只读。
focus() 聚焦。
check() 触发校验,按照您配置的校验规则进行检验并做相关提示。
- @return {Boolean} 校验结果。
showTips(text, status) 显示提示。
- @param text {String} 提示内容
- @param status {String} 提示状态,取值可以是:error, highlight, active, default, hover。
closeTips() 关闭提示。
clear() 清除内容。
getRow() 获取所属表单对象。
- @return form {Object} 行对象
Row 行对象
API
getInput(name) 获取输入域对象。
- @param name {String} 输入域列名。
- @return inpObject {InputObject} 输入域对象。
disable() 禁用。
affected(zContext) 影响。可以重新按照当前上下文变量刷新数据。
getLastEventInput() 获取最后事件触发的输入域对象。
- @return {InputObject}
getId() 获取行 ID。
- @return {String} 行 ID,也是对应的 HTML DOM ID
Widget 对象
如何获得 Widget 对象:
var var win = Enhancer.getEntityByNumber(窗口编号);
var gridEditor = win.getWidget();
API
getRow(index|rowId) 获取 Row 对象
- @param index|rowId {Number | String} 行序号 或者行ID(同HTML DOM ID)
- @return {Row} 行对象
getRows() 获取全部行对象。
- @return {Array
} 行对象数组。
addRow(data[, index]) 添加行
- @param data {Object} 行数据,属性名应与 grid-editor 的列名一致。
- @param index {Number} 行序号,从 0 开始,可不指定。若不指定或超出实际范围,则添加到最末尾。
- @return rowId {String} 行 ID。
【例】
var win = Enhancer.getEntityByNumber(窗口编号);
var gridEditor = win.getWidget();
gridEditor.addRow({id: 123, name: '张三', type: 1});
delRow(rowId) 删除行
- @param rowId {String} 行ID(同HTML DOM ID)
- @return {Boolean} 是否删除成功。
delAllRows() 删除全部行
- @return {Boolean} 是否删除成功。
readonly(readonly) 设置只读或恢复可写。
- @param readonly {Boolean} 是否只读。
窗口外部获取组件对象方法
var win = Enhancer.getEntityByNumber(窗口编号);
var gridEditor = win.getWidget();
// 获得第三行对象
var row = gridEditor.getRow(2);
var input = row.getInput('INPUT_NAME');
input.setValue('123');
input.trig('Change'); // 让外部知道本组件值发生变化,进而触发相关依赖窗口的刷新。
// 获得全部行对象
var rows = gridEditor.getRows();
自定义校验函数
在输入域设置校验规则中,可以指定自定义校验函数:
/**
* @param value {Object} 当前输入域的值。
* @param context {Object} 当前行全部输入域的键-值对象,通过 context[大写输入域名] 可取得对应值。
* @param inputObject {InputObject} 当前输入域对象。
**/
function(value, context, inputObject) {
if (合法) {
return true
}
return '不合法原因'
}