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

示例 1

以下是一个树形数据容器如何初始化并通过远程服务加载数据的代码示例。
JavaScript 代码
var container = new mx.datacontainers.TreeEntityContainer( { "baseUrl" : "~/rest/getNode" }); container.on("load", function() { alert("onload");//触发 onload 事件。 }); container.load(node);//为指定的节点加载子节点;如果不传参数,则加载根节点。

示例 2

以下是一个树形数据容器加载本地数据的代码示例。
JavaScript 代码
var container = new mx.datacontainers.TreeEntityContainer( { "type" : "local",//声明容器类型为本地数据。 "data" : //本地数据信息。 [ { "id" : "local_1", "text" : "local_1_text", "hasChildren" : true, "nodes" : //子节点。 [ { "id" : "local_1_1", "text" : "local_1_1_text", "hasChildren" : false }, { "id" : "local_1_2", "text" : "local_1_2_text", "hasChildren" : false } ] }, { "id" : "local_2", "text" : "local_2_text", "hasChildren" : false }, { "id" : "local_3", "text" : "local_3_text", "hasChildren" : false } ] }); container.on("load", function() { alert("onload");//触发 onload 事件。 }); container.load();

构造函数

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

初始化函数

名称 说明
init()

方法

名称 说明
bind(p_target) 提供一个方法,用于跟另外一个数据容器绑定,达到数据同步的效果。
checkSaved(p_id) 提供一个方法,检查指定数据是否保存过。true 表示数据为修改状态;false表示数据为新增状态,尚未保存。
clearChanges() 提供一个方法,清除容器中记录的数据改变信息。
create(p_node, p_options)
getChangedItems() 提供一个方法,获取数据容器中已改变但未保存的对象数组,对象中仅包含改变的对象属性及值。
getChanges()
getNodeEntity(p_nodeID, p_itemType) 提供一个方法,根据主键获取对应的数据对象。
hasChanged(p_changed) 获取或者设置 EntityContainer.changed 字段的值。
load([p_node]) 提供一个方法,为数据容器加载数据对象。
load([p_node], [p_callBack]) 提供一个方法,为数据容器加载数据对象。
remove(p_node) 提供一个方法,删除一个树节点。
remove(p_node, p_delete) 提供一个方法,删除一个树节点。
remove(p_node, [p_callback], [p_path]) 提供一个方法,删除一个树节点。
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属性必须设置,否则可以不用设置
canCreate
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 受保护的。
_removeCallBack 受保护的。
_saveCallBack 受保护的。
_submitting 受保护的。
_tempLoadResult 受保护的。

事件

名称 说明
onchanged 当数据容器中的数据值发生改变后,将触发该事件。
onchanging 当数据容器中的数据值发生改变的时候,将触发该事件。
oncreated 当数据容器中新增数据对象后,将触发该事件。
oncreating 当数据容器中新增数据对象时,将触发该事件。
ondeleted 当数据容器中有数据对象被删除后,将触发该事件。
ondeleting 当数据容器中有数据对象被删除时,将触发该事件。
onerror 当出现错误时,将触发该事件。主要用于取消等待蒙板。
onload 以下参数说明仅包含当前子类的扩展参数,基础参数和其他信息请参照 EntityContainer.onload 事件。
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 表示一个字段的检验结果。

构造函数详细信息

TreeEntityContainer() 方法

构建 TreeEntityContainer 类的新实例。

初始化函数详细信息

init() 方法


方法详细信息

bind(p_target) 方法

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

参数

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

继承自


checkSaved(p_id) 方法

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

参数

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

继承自


clearChanges() 方法

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

继承自


create(p_node, p_options) 方法

参数

  • p_node
  • p_options

getChangedItems() 方法

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

继承自


getChanges() 方法


getNodeEntity(p_nodeID, p_itemType) 方法

提供一个方法,根据主键获取对应的数据对象。

参数

  • p_nodeID
    一个字符串或者数字,表示要查找的数据对象的主键值。
  • p_itemType

hasChanged(p_changed) 方法

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

参数

  • p_changed

继承自


load([p_node]) 方法

提供一个方法,为数据容器加载数据对象。

参数

  • p_node
    可选的。一个 DataTreeNode 对象,表示要加载子节点的节点。

继承自


load([p_node], [p_callBack]) 方法

提供一个方法,为数据容器加载数据对象。

参数

  • p_node
    可选的。一个 DataTreeNode 对象,表示要加载子节点的节点。
  • p_callBack
    可选的。一个方法,表示加载完成后的回调函数。

继承自


remove(p_node) 方法

提供一个方法,删除一个树节点。

参数

  • p_node
    一个 DataTreeNode 对象,表示要删除的节点。

remove(p_node, p_delete) 方法

提供一个方法,删除一个树节点。

参数

  • p_node
    一个 DataTreeNode 对象,表示要删除的节点。
  • p_delete

remove(p_node, [p_callback], [p_path]) 方法

提供一个方法,删除一个树节点。

参数

  • p_node
    一个 DataTreeNode 对象,表示要删除的节点。
  • p_callback
    可选的。一个方法,表示删除之后的回调函数。
  • p_path
    可选的。一个字符串,表示自定义删除服务的路径。

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属性必须设置,否则可以不用设置

继承自


canCreate 字段


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 字段

受保护的。

继承自


_removeCallBack 字段

受保护的。

_saveCallBack 字段


_submitting 字段


_tempLoadResult 字段


事件详细信息

onchanged 事件

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

参数

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

继承自


onchanging 事件

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

参数

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

继承自


oncreated 事件

当数据容器中新增数据对象后,将触发该事件。

参数

  • entity
    一个 JSON 对象,表示新增的数据对象。

oncreating 事件

当数据容器中新增数据对象时,将触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止事件。
  • entity
    一个 JSON 对象,表示新增的数据对象。

ondeleted 事件

当数据容器中有数据对象被删除后,将触发该事件。

参数

  • node
    一个 DataTreeNode 对象,表示要删除的节点。

ondeleting 事件

当数据容器中有数据对象被删除时,将触发该事件。

参数

  • cancel
    一个 Boolean 值,表示是否中止事件。
  • node
    一个 DataTreeNode 对象,表示要删除的节点。

onerror 事件

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

参数

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

继承自


onload 事件

以下参数说明仅包含当前子类的扩展参数,基础参数和其他信息请参照 EntityContainer.onload 事件。

参数

  • parentNode
    一个 DataTreeNode 对象,表示此次加载子节点的节点。
  • nodes
    一个数组,包含本次加载结果中的节点信息。

继承自


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 表示一个字段的检验结果。

继承自