全称 mx.datacontainers.EntityContainer
命名空间 mx.datacontainers
EntityContainer
继承层次结构 EntityContainer
源文件 ~\mx\scripts\datacontainers\EntityContainer.js
提供一个数据容器的基类。

在 MXFramework 中,使用数据容器作为数据源提供给 DataGridDataFormDataTree 等数据控件。 数据源中的实际数据对象值封装为数据源的 data 属性; 同时,数据对象的字段类型和校验信息等内容封装为数据源的 meta 属性。


构造函数

名称 说明
EntityContainer() 构建 EntityContainer 类的新实例。

初始化函数

名称 说明
init()

方法

名称 说明
bind(p_target) 提供一个方法,用于跟另外一个数据容器绑定,达到数据同步的效果。
checkSaved(p_id) 提供一个方法,检查指定数据是否保存过。true 表示数据为修改状态;false表示数据为新增状态,尚未保存。
clearChanges() 提供一个方法,清除容器中记录的数据改变信息。
getChangedItems() 提供一个方法,获取数据容器中已改变但未保存的对象数组,对象中仅包含改变的对象属性及值。
getChanges()
hasChanged(p_changed) 获取或者设置 EntityContainer.changed 字段的值。
load([p_data]) 为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。
load([p_path]) 为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。
load([p_path], [p_data]) 为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。
load([p_path], [p_data], [p_callBack]) 为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。
save([p_path]) 调用后台服务,将新增和修改的内容保存到数据库。 保存前会调用 validate 方法检查数据值是否合法。
setBaseUrl(p_url) 设置 baseUrl 字段的值。
setValue(p_entity, p_col, p_value) 提供一个方法,修改表单中某个字段的值。
setValue(p_entity, p_col, p_value, [p_triggerEvent]) 提供一个方法,修改表单中某个字段的值。

字段

名称 说明
actions 获取或设置一个 JSON 对象,表示数据容器中各种操作的 path 集合。该字段的字段名表示操作类型,值表示操作路径。 用户可以根据需要改变改变相应的操作路径。

该字段的字段名包括:

  • meta
  • data
  • save
  • remove
当actions中设置某一个属性则会使用action属性的值作为本次请求的操作路径 即将action属性的值作为请求的基准路径。如:actions:{remove:"~/mxcasetest/rest/user/"}, 则在me.remove()时会使用~/mxcasetest/rest/user/作为请求的路径,不再使用baseUrl。

baseUrl 获取数据容器的资源 URL。请参见 RESTClient.baseUrltype属性值为remote,baseUrl属性必须设置,否则可以不用设置
canModify 获取一个 boolean 值,表示当前数据容器是否允许编辑。
changed 获取一个 Boolean 值,表示数据容器中是否存在修改过但未保存的数据。 当 insertEntityupdateEntity 方法被调用时,该字段被置为true;当 save 方法被调用时,该字段被还原为false。
client 获取数据容器的 REST 服务客户端 RESTClient,数据容器通过此客户端调用后台服务。
data 获取一个对象,表示数据容器中的数据值,通常为一个 JSON 对象或数组。
dicts 获取一个数组,表示数据容器中的数据字典。通过字段名称可以获取该字段对应的所有数据字典。
enableLocalMask 获取或设置一个 boolean 值,表示当前数据容器是否加载本地数据时使用加载提示动画。
iscID 获取或设置一个字符串,表示当前容器的操作权限,请求加载请求元数据是传给服务。
loadByPost 设置或者获取数据容器是否使用post方式提交查询服务,true:post方式 false:get方式
loadMeta 一个 boolean 值,表示当前数据容器是否有元数据信息。 少数控件比如树没有元数据信息时,子类重写成 false。 开发时确定元数据信息由前端指定,不需要调用服务时,也可以设置为 false。
mdaParams 获取或设置一个 JSON 对象,用于保存模型驱动所需要的参数。
meta 获取一个数组,表示数据容器中的元数据信息,通常包含各个字段的类型及校验信息等内容。
primaryKey 获取一个字符串,表示数据的主键(或唯一标识)所在列名。
type 获取数据容器的类型。必须在创建数据容器时设定该属性。

该字段可选的值包括:

  • remote
  • local

_changedItems 受保护的。
_changingType 受保护的。
_lastLoad 受保护的。
_loadCallBack 受保护的。
_loadData 受保护的。
_loadDataPara 受保护的。
_loadMetaPara 受保护的。
_oldData 受保护的。
_saveCallBack 受保护的。
_submitting 受保护的。
_tempLoadResult 受保护的。

事件

名称 说明
onchanged 当数据容器中的数据值发生改变后,将触发该事件。
onchanging 当数据容器中的数据值发生改变的时候,将触发该事件。
onerror 当出现错误时,将触发该事件。主要用于取消等待蒙板。
onload 当数据容器加载数据成功后,将触发该事件。调用 load 方法后会触发该事件。
onloading 当数据容器开始加载数据时,将触发该事件。调用 load 方法时会触发该事件。
onsaved 当数据容器中的数据对象保存成功后,将触发该事件。调用 save 方法会触发该事件。
onsaving 当数据容器中的数据对象保存时,将触发该事件。调用 save 方法会触发该事件。
onvalidate 当数据容器中的数据对象保存时,如果服务端校验不通过,将触发该事件。 要求服务端在保存失败的时候返回的数据格式如下所示。 {successful: false, resultValue: [[ {"error":true,"errors":["最后使用时间格式不正确!"],"errorsToDefaulFormatString":"最后使用时间格式不正确!\n","fieldName":"lastTime","messages":[],"msgToDefaulFormatString":""}, {"error":true,"errors":["必须为整数,介于0-10000之间"],"errorsToDefaulFormatString":"必须为整数,介于0-10000之间\n","fieldName":"pointCount","messages":[],"msgToDefaulFormatString":""} ]] ,resultHint: ""} ,其中嵌套数组表示一条记录的校验结果,数组内的 JSON 表示一个字段的检验结果。

构造函数详细信息

EntityContainer() 方法

构建 EntityContainer 类的新实例。

初始化函数详细信息

init() 方法


方法详细信息

bind(p_target) 方法

提供一个方法,用于跟另外一个数据容器绑定,达到数据同步的效果。

参数

  • p_target
    一个数据容器,表示要跟当前容器绑定以保持数据同步。

checkSaved(p_id) 方法

提供一个方法,检查指定数据是否保存过。true 表示数据为修改状态;false表示数据为新增状态,尚未保存。

参数

  • p_id
    一个数字或字符串,表示要检查的数据主键值。

clearChanges() 方法

提供一个方法,清除容器中记录的数据改变信息。

getChangedItems() 方法

提供一个方法,获取数据容器中已改变但未保存的对象数组,对象中仅包含改变的对象属性及值。

getChanges() 方法


hasChanged(p_changed) 方法

获取或者设置 EntityContainer.changed 字段的值。

参数

  • p_changed

load([p_data]) 方法

为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。

参数

  • p_data
    可选的。一个 JSON 对象,表示加载数据的过滤条件等参数。

load([p_path]) 方法

为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。

参数

  • p_path
    可选的。指定的 REST 服务路径,请参见 RESTClient.send 方法。

load([p_path], [p_data]) 方法

为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。

参数

  • p_path
    可选的。指定的 REST 服务路径,请参见 RESTClient.send 方法。
  • p_data
    可选的。一个 JSON 对象,表示加载数据的过滤条件等参数。

load([p_path], [p_data], [p_callBack]) 方法

为数据容器加载数据对象。 此方法主要供数据控件调用,一般情况下,不推荐开发人员在业务代码中调用此方法; 特殊情况如多个数据控件绑定同一个数据源时除外。

参数

  • p_path
    可选的。指定的 REST 服务路径,请参见 RESTClient.send 方法。
  • p_data
    可选的。一个 JSON 对象,表示加载数据的过滤条件等参数。
  • p_callBack
    可选的。一个 方法,表示加载成功后的回调函数。

save([p_path]) 方法

调用后台服务,将新增和修改的内容保存到数据库。 保存前会调用 validate 方法检查数据值是否合法。

参数

  • p_path
    可选的。指定的 REST 服务路径,请参见 RESTClient.post 方法。

setBaseUrl(p_url) 方法

设置 baseUrl 字段的值。

参数

  • p_url

setValue(p_entity, p_col, p_value) 方法

提供一个方法,修改表单中某个字段的值。

参数

  • p_entity
    一个 json 对象,表示要修改的数据容器中的一条数据。
  • p_col
    要修改的字段名。
  • p_value
    要修改成的值。

setValue(p_entity, p_col, p_value, [p_triggerEvent]) 方法

提供一个方法,修改表单中某个字段的值。

参数

  • p_entity
    一个 json 对象,表示要修改的数据容器中的一条数据。
  • p_col
    要修改的字段名。
  • p_value
    要修改成的值。
  • p_triggerEvent
    可选的。默认值为“true”。一个 Boolean 值,表示是否要触发事件。如果该值为 true,则触发事件;反之则不触发。

字段详细信息

actions 字段

获取或设置一个 JSON 对象,表示数据容器中各种操作的 path 集合。该字段的字段名表示操作类型,值表示操作路径。 用户可以根据需要改变改变相应的操作路径。

该字段的字段名包括:

  • meta
  • data
  • save
  • remove
当actions中设置某一个属性则会使用action属性的值作为本次请求的操作路径 即将action属性的值作为请求的基准路径。如:actions:{remove:"~/mxcasetest/rest/user/"}, 则在me.remove()时会使用~/mxcasetest/rest/user/作为请求的路径,不再使用baseUrl。


baseUrl 字段

获取数据容器的资源 URL。请参见 RESTClient.baseUrltype属性值为remote,baseUrl属性必须设置,否则可以不用设置

canModify 字段

获取一个 boolean 值,表示当前数据容器是否允许编辑。

默认值

true

changed 字段

获取一个 Boolean 值,表示数据容器中是否存在修改过但未保存的数据。 当 insertEntityupdateEntity 方法被调用时,该字段被置为true;当 save 方法被调用时,该字段被还原为false。

默认值

false

client 字段

获取数据容器的 REST 服务客户端 RESTClient,数据容器通过此客户端调用后台服务。

data 字段

获取一个对象,表示数据容器中的数据值,通常为一个 JSON 对象或数组。

dicts 字段

获取一个数组,表示数据容器中的数据字典。通过字段名称可以获取该字段对应的所有数据字典。

enableLocalMask 字段

获取或设置一个 boolean 值,表示当前数据容器是否加载本地数据时使用加载提示动画。

iscID 字段

获取或设置一个字符串,表示当前容器的操作权限,请求加载请求元数据是传给服务。

loadByPost 字段

设置或者获取数据容器是否使用post方式提交查询服务,true:post方式 false:get方式

默认值

false

loadMeta 字段

一个 boolean 值,表示当前数据容器是否有元数据信息。 少数控件比如树没有元数据信息时,子类重写成 false。 开发时确定元数据信息由前端指定,不需要调用服务时,也可以设置为 false。

默认值

true

mdaParams 字段

获取或设置一个 JSON 对象,用于保存模型驱动所需要的参数。

meta 字段

获取一个数组,表示数据容器中的元数据信息,通常包含各个字段的类型及校验信息等内容。

primaryKey 字段

获取一个字符串,表示数据的主键(或唯一标识)所在列名。

默认值

id

type 字段

获取数据容器的类型。必须在创建数据容器时设定该属性。

该字段可选的值包括:

  • remote
  • local

默认值

remote

_changedItems 字段

受保护的。

_changingType 字段

受保护的。

_lastLoad 字段

受保护的。

_loadCallBack 字段

受保护的。

_loadData 字段

受保护的。

_loadDataPara 字段

受保护的。

_loadMetaPara 字段

受保护的。

_oldData 字段

受保护的。

_saveCallBack 字段

受保护的。

_submitting 字段

受保护的。

_tempLoadResult 字段

受保护的。

事件详细信息

onchanged 事件

当数据容器中的数据值发生改变后,将触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止事件。
  • entity
    一个 JSON 对象,表示发生值改变的数据对象。
  • fieldName
    一个字符串,表示发生值改变的列名。
  • value
    变更之后的值。

onchanging 事件

当数据容器中的数据值发生改变的时候,将触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止事件。
  • entity
    一个 JSON 对象,表示发生值改变的数据对象。
  • fieldName
    一个字符串,表示发生值改变的列名。
  • oldValue
    变更之前的值。
  • newValue
    变更之后的值。

onerror 事件

当出现错误时,将触发该事件。主要用于取消等待蒙板。

参数

  • message
    一个包含错误信息的字符串。

onload 事件

当数据容器加载数据成功后,将触发该事件。调用 load 方法后会触发该事件。

参数

  • columns
    一个数组,表示此次加载结果中的元数据信息。
  • items
    一个数组,表示此次加载的数据结果。

onloading 事件

当数据容器开始加载数据时,将触发该事件。调用 load 方法时会触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止当前的加载动作。

onsaved 事件

当数据容器中的数据对象保存成功后,将触发该事件。调用 save 方法会触发该事件。

参数

  • result
    一个数组,包含保存的数据结果。

onsaving 事件

当数据容器中的数据对象保存时,将触发该事件。调用 save 方法会触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止事件。
  • data
    当前数据容器中的数据。

onvalidate 事件

当数据容器中的数据对象保存时,如果服务端校验不通过,将触发该事件。 要求服务端在保存失败的时候返回的数据格式如下所示。 {successful: false, resultValue: [[ {"error":true,"errors":["最后使用时间格式不正确!"],"errorsToDefaulFormatString":"最后使用时间格式不正确!\n","fieldName":"lastTime","messages":[],"msgToDefaulFormatString":""}, {"error":true,"errors":["必须为整数,介于0-10000之间"],"errorsToDefaulFormatString":"必须为整数,介于0-10000之间\n","fieldName":"pointCount","messages":[],"msgToDefaulFormatString":""} ]] ,resultHint: ""} ,其中嵌套数组表示一条记录的校验结果,数组内的 JSON 表示一个字段的检验结果。