You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kendo Grid内联三元模板:非空显链接空值显错误文本实现方法

前置说明:请忽略代码中的语法偏差,已知href属性内的部分转义字符未正常显示,实际代码中已包含这些转义字符。

已知可行的基础写法
  • 列中渲染带链接的数值:
template: '<a class="whatever" href="#"> #=value#'
  • 兼容null值、不渲染空链接:
template: '<a class="whatever" href="#"> #=value !=null ? value: ""#'
目标需求

使用同类纯内联模板语法实现效果,不单独编写判断函数:

  • value非空时:渲染带链接的value值
  • value为null时:直接渲染非链接形式的错误提示文本
现存问题

仅渲染粗体值或错误提示的写法可正常运行:

template: ' #=value !=null ? <strong>value</strong> : "Invalid Entry"#'

但将粗体value替换为a标签链接后,尝试单引号、双引号、#标识的多种包裹组合均无效,错误写法示例:

// 该写法存在语法错误,无法正常运行
template: ' #=value !=null ? <strong><a class="whatever" href="#"> #=value#</strong> : "Invalid Entry"#'
问题原因

报错核心是模板解析规则冲突:#= ... #包裹的区块是纯JavaScript执行上下文,区块内不能直接裸写HTML标签,也不能嵌套第二层#=插值标记,否则模板引擎会将内部的#识别为区块结束边界,打断JS表达式解析,触发语法错误。

正确实现

直接在JS表达式块内通过字符串拼接输出HTML即可,无需额外定义函数:

// 基础版:非空显示链接,空值显示错误提示
template: '#= value != null ? "<a class=\"whatever\" href=\"#\">" + value + "</a>" : "Invalid Entry" #'

如果需要保留粗体样式,直接将strong标签拼入字符串即可:

// 带粗体样式版本
template: '#= value != null ? "<strong><a class=\"whatever\" href=\"#\">" + value + "</a></strong>" : "Invalid Entry" #'

内容的提问来源于stack exchange,提问作者Greg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 12:39:15