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

Posted

技术标签:

【中文标题】如何为 Kendo TreeList parentID 和 hasChildren 使用自定义字段【英文标题】:How to use custom fields for Kendo TreeList parentID and hasChildren 【发布时间】: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,请把这个放在文档中!!

问候,

斯科特

【问题讨论】:

【参考方案1】:

问题就是答案 ;-)

但是对于那些想在答案中看到答案的人......这里是:

我终于开始工作了:

"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。

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

【讨论】:

这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。 @NullReference 只是为了让你开心,伙计......对于其他任何看不懂问题就是答案的人,我已经在答案中添加了答案.....跨度>

以上是关于如何为 Kendo TreeList parentID 和 hasChildren 使用自定义字段的主要内容,如果未能解决你的问题,请参考以下文章

kendo ui 查找treelist里的子控件并设置是否显示的方法

内联更新后,Kendo Treelist重新加载/刷新

kendo ui treelist popup 模式下 实现下拉框控件形式展示

如何为 Kendo UI 自动完成控件设置宽度

如何为 kendo ui 下拉菜单设置默认值?

如何为基于 JS、Kendo 和 Jquery 的网站创建原生应用程序 [关闭]