我花了4天的时间研究如何做到这一点,因为它不在文档中,我无法得到Telerik的任何支持,即使我是付费客户提出此问题的支持票。为了公平对待Telerik,我认为这是由于一个非常糟糕的支持技术,它们通常非常好。 Telerik如果您正在阅读结账票号码:964961,962272。我们希望下次有更好的回复。
希望这可以节省4天的其他人......这是我遇到的问题以及我如何解决它。
我正在使用Kendo TreeList执行按需加载方案。我们有自己的请求管理器来处理与服务器的所有事务,因此我们在Kendo dataSource的读传输上使用JS函数,并使用options.success(aData)将服务器返回的数据放入dataSource。
我们有调用MySQL procs的PHP路由,MySQL将所有内容作为字符串返回,因此当PHP将结果转换为JSON时,所有非空值都将作为字符串发送。这包括hasChildren字段。
通常这不是问题,因为Kendo dataSource将根据dataSource Schema中定义的类型正确键入值。 但是我发现在将数据分配给dataSource之后,所有hasChildren:“true”,值将转换为hasChildren:false,因此没有展开按钮将显示在TreeList上,用于具有子项的按需加载项
所以我需要一种方法将hasChildren字段映射到一个类型字段,以便从字符串转换为bool。
这是我最终的工作:
"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,请把它放在文档!!
此致
斯科特
答案 0 :(得分:0)
问题是答案; - )
但对于那些想在答案中看到答案的人......这里是:
这是我最终的工作:
"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。
希望这可以节省一些人花时间来解决这个问题。