如何在Kendo Grid中通过客户端模板拼接姓氏与中间名列?
Kendo Grid客户端模板报错解决:添加中间名并处理空格
问题原因
你的模板触发HTML无效错误,核心是两个问题:
- 三元表达式的空格处理不当,导致模板语法解析失败
- 当中间名为空时会残留多余空格,同时语法格式不符合Kendo模板的解析规范
正确解决方案
方案1:优化三元表达式(简洁写法)
把空格和中间名绑定,仅当中间名存在时才输出「空格+中间名」,同时简化判断逻辑(JS中null/空字符串会被视为假值):
columns.Bound(p => p.LastName) .ClientTemplate($"#=IsSpecialPerson ? 'Special Message' : ''##=LastName##= MiddleName ? ' ' + MiddleName : ''#");
方案2:使用#if#语句(可读性更高)
用Kendo模板的#if#语法替代三元表达式,逻辑更清晰,同时用逐字字符串避免引号转义问题:
columns.Bound(p => p.LastName) .ClientTemplate(@"#=IsSpecialPerson ? 'Special Message' : ''# #=LastName# #if(MiddleName){# #=MiddleName# #}#");
额外说明
如果中间名可能是空字符串(而非null),可以把判断逻辑改成MiddleName && MiddleName.trim() !== '',过滤纯空格的情况:
// 方案1适配空字符串的写法 columns.Bound(p => p.LastName) .ClientTemplate($"#=IsSpecialPerson ? 'Special Message' : ''##=LastName##= (MiddleName && MiddleName.trim() !== '') ? ' ' + MiddleName : ''#");
内容的提问来源于stack exchange,提问作者Tiger
相关产品推荐
相关产品推荐

