0

0

Kendo UI OrgChart 节点内容自定义与数据扩展教程

心靈之曲

心靈之曲

发布时间:2025-11-25 11:25:27

|

356人浏览过

|

来源于php中文网

原创

Kendo UI OrgChart 节点内容自定义与数据扩展教程

本教程详细介绍了如何利用 kendo ui orgchart 的模板功能,突破默认限制,实现节点内容的深度自定义。通过定义 `template` 属性,开发者可以根据具体业务需求,灵活展示包括多字段数据在内的丰富信息,并移除不必要的元素如头像,从而构建出更具专业性和信息量的组织结构图。

Kendo UI OrgChart 节点内容定制概述

Kendo UI OrgChart 默认提供的节点显示内容通常仅限于“姓名”和“职位”等少量信息。然而,在实际应用中,我们往往需要在一个节点内展示更多关联数据,例如项目指标、成本详情或绩效数据等。Kendo UI 为此提供了强大的模板(template)机制,允许开发者完全自定义每个组织图节点的 HTML 结构和数据绑定方式,从而满足复杂的展示需求。

理解 template 属性

template 属性是 Kendo UI OrgChart 配置对象中的一个关键选项,它接受一个字符串作为值,该字符串定义了每个节点将渲染的 HTML 结构。在这个 HTML 字符串中,我们可以使用 Kendo UI 模板语法 #: fieldName # 来绑定数据源中对应的字段值。

例如,如果您的数据源包含 item_desc、eoy_target、ytd_plan 等字段,您可以在模板中直接引用它们,将这些信息动态地渲染到每个节点中。

定义自定义节点模板

要自定义 OrgChart 节点,您需要根据您的数据结构和希望展示的信息来构建一个 HTML 字符串。以下是一个基于您提供的 JSON 数据,展示多个字段信息的自定义模板示例。

假设我们有如下数据结构:

[
  {
    "item_id": "195",
    "item_desc": "Fuel Cost",
    "parent_pi_kode": "193",
    "parent_pid_desc": "Blasting Cost",
    "eoy_target": 0.2,
    "eoy_actual": 0.32,
    "ytd_plan": 0.13,
    "ytd_actual": 0.14,
    "achi_pi": 107.69,
    "achi_ia": 0.0,
    "achi_ra": 0.0,
    "achi_ip": 0.0,
    "has_child": true,
    "is_expanded": true
  },
  // ... 其他数据项
]

我们的目标是展示 item_desc, eoy_target, eoy_actual, ytd_plan, ytd_actual, achi_pi, achi_ia, achi_ra, achi_ip 这些字段,并且不需要头像。

您可以这样构建您的 template:

$("#orgchart").kendoOrgChart({
    // ... 其他配置
    template:
        "
" + "
#: item_desc #
" + "
" + "

EOY Target: #: kendo.toString(eoy_target, 'n2') #

" + "

EOY Actual: #: kendo.toString(eoy_actual, 'n2') #

" + "

YTD Plan: #: kendo.toString(ytd_plan, 'n2') #

" + "

YTD Actual: #: kendo.toString(ytd_actual, 'n2') #

" + "

Achi PI: #: kendo.toString(achi_pi, 'n2') #%

" + "

Achi IA: #: kendo.toString(achi_ia, 'n2') #%

" + "

Achi RA: #: kendo.toString(achi_ra, 'n2') #%

" + "

Achi IP: #: kendo.toString(achi_ip, 'n2') #%

麦艺画板(Max.art)
麦艺画板(Max.art)

AI工业设计平台,专注于汽车设计,线稿、渲染、3D建模全流程覆盖

下载
" + "
" + "
", // ... 其他配置 });

在这个模板中:

  • 我们创建了一个名为 orgchart-node-custom 的主容器 div,用于整体样式控制。
  • node-header 显示了 item_desc 作为节点的标题。
  • node-body 包含了其他所有需要展示的字段,每个字段都用一个

    标签包裹。

  • #: kendo.toString(fieldName, 'n2') # 用于格式化数字,例如保留两位小数,使其更具可读性。

完整示例代码

下面是一个完整的 Kendo UI OrgChart 配置示例,演示了如何集成自定义模板和您提供的数据。




    Kendo UI OrgChart 自定义节点
    
    
    
    


    

代码说明:

  • dataSource 配置: kendo.data.OrgChartDataSource 用于处理层级数据。id 字段指定了每个节点的唯一标识,parentId 字段指定了其父节点的标识。expanded 字段用于控制节点默认是否展开。
  • template 属性: 包含了我们自定义的 HTML 结构和数据绑定表达式。
  • CSS 样式: 示例中提供了一些基本的 CSS 样式,用于美化自定义节点的外观。您可以根据实际需求进一步调整。
  • 数据格式化 使用 kendo.toString(value, format) 可以对数值进行格式化,例如 n2 表示保留两位小数。

注意事项与最佳实践

  1. CSS 样式的重要性: 自定义模板后,节点的布局和外观完全由您定义的 HTML 和 CSS 控制。务必编写合适的 CSS 样式,以确保节点美观、易读,并适应不同屏幕尺寸。
  2. 数据绑定安全性: Kendo UI 模板会自动进行 HTML 编码,以防止 XSS 攻击。如果您的数据包含需要作为原始 HTML 渲染的内容(不推荐),可以使用 #! field # 语法,但这会带来安全风险,请谨慎使用。
  3. 性能考量: 对于包含大量节点或每个节点内容非常复杂的组织图,过多的 DOM 元素可能会影响渲染性能。在设计模板时,应尽量保持 HTML 结构简洁高效。
  4. 响应式设计 考虑在不同设备和屏幕尺寸下,自定义节点内容的显示效果。可能需要结合 CSS 媒体查询来实现响应式布局
  5. 调试: 如果自定义模板不按预期工作,请检查浏览器的开发者工具,查看生成的 HTML 结构和 CSS 样式,通常能帮助定位问题。
  6. Kendo UI 版本兼容性: 确保您使用的 Kendo UI 版本支持 OrgChart 功能,并注意不同版本之间可能存在的 API 差异。

总结

Kendo UI OrgChart 的 template 属性为开发者提供了极大的灵活性,使其能够根据具体业务需求,完全掌控组织图节点的显示内容和样式。通过精心设计的模板,您可以将默认仅展示少量信息的 OrgChart 转换为功能丰富、数据详尽的可视化工具,从而提升用户体验和数据洞察力。掌握这一技巧,将使您在构建复杂的 Kendo UI 应用时如虎添翼。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

408

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

532

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

309

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

74

2025.09.10

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

509

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

262

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

752

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

536

2023.08.01

c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

80

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.8万人学习

CSS教程
CSS教程

共754课时 | 18.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号