如何使用Kendo TreeList parentID和hasChildren的自定义字段

时间:2015-08-27 23:50:32

标签: kendo-ui telerik

我花了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,请把它放在文档!!

此致

斯科特

1 个答案:

答案 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。

希望这可以节省一些人花时间来解决这个问题。