【发布时间】:2015-11-22 12:50:30
【问题描述】:
我只花了 4 天时间研究如何做到这一点,因为它不在文档中,而且我无法从 Telerik 获得任何支持,即使我是付费客户,就这个问题提交了支持票。公平地说,Telerik 我认为这是由于一项非常糟糕的支持技术,他们通常非常好。 Telerik 如果您阅读检查票号:964961、962272。让我们希望下次有更好的回应。
希望这可以为其他人节省 4 天...这是我遇到的问题以及我如何解决它。
我正在使用 Kendo TreeList 进行按需加载场景。我们有自己的请求管理器来处理与服务器的所有事务,因此我们在 Kendo 数据源的读取传输上使用 JS 函数,并使用 options.success(aData) 将从服务器返回的数据放入数据源中。
我们有调用 MySQL procs 的 PHP 路由,MySQL 将所有内容都作为字符串返回,因此当 PHP 将结果转换为 JSON 时,所有非空值都作为字符串发送。这包括 hasChildren 字段。
通常这不是问题,因为 Kendo 数据源会根据数据源模式中定义的类型正确键入值。 但是我发现在将数据分配给数据源后,所有的 hasChildren: "true" 值都会被转换为 hasChildren: false,因此对于有子项的按需加载项,TreeList 上不会显示展开按钮.
所以我需要一种将 hasChildren 字段映射到类型化字段的方法,这样才能实现从字符串到布尔值的转换。
我终于开始工作了:
"OpParent": {
"type": "number",
"nullable": true
},
"parentId": {
"type": "number",
"field": "OpParent",
"defaultValue": null
},
"OpHasChildren": {
"type": "boolean",
"nullable": true
},
"hasChildren": {
"type": "boolean",
"field": "OpHasChildren"
}
我还发现如果你的根级父级的值为null,则需要在parentID定义中将defaultValue设置为null。
希望这可以节省一些人解决这个问题的时间。
Telerik,请把这个放在文档中!!
问候,
斯科特
【问题讨论】: