本教程详细介绍了如何利用 kendo ui orgchart 的模板功能,突破默认限制,实现节点内容的深度自定义。通过定义 `template` 属性,开发者可以根据具体业务需求,灵活展示包括多字段数据在内的丰富信息,并移除不必要的元素如头像,从而构建出更具专业性和信息量的组织结构图。
Kendo UI OrgChart 默认提供的节点显示内容通常仅限于“姓名”和“职位”等少量信息。然而,在实际应用中,我们往往需要在一个节点内展示更多关联数据,例如项目指标、成本详情或绩效数据等。Kendo UI 为此提供了强大的模板(template)机制,允许开发者完全自定义每个组织图节点的 HTML 结构和数据绑定方式,从而满足复杂的展示需求。
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') #%
" +
"" +
"",
// ... 其他配置
});在这个模板中:
标签包裹。
下面是一个完整的 Kendo UI OrgChart 配置示例,演示了如何集成自定义模板和您提供的数据。
Kendo UI OrgChart 自定义节点
代码说明:
Kendo UI OrgChart 的 template 属性为开发者提供了极大的灵活性,使其能够根据具体业务需求,完全掌控组织图节点的显示内容和样式。通过精心设计的模板,您可以将默认仅展示少量信息的 OrgChart 转换为功能丰富、数据详尽的可视化工具,从而提升用户体验和数据洞察力。掌握这一技巧,将使您在构建复杂的 Kendo UI 应用时如虎添翼。