Kendo Grid模板日期格式化求助:.NET DateTime转JSON后格式无效
解决Kendo Grid模板中.NET DateTime日期格式化问题
我明白你遇到的困扰了——在构建Kendo Grid模板时,嵌套的语法转义和日期解析逻辑混乱导致格式化完全失效。让我帮你梳理问题根源,然后给出直接可用的解决方案:
问题出在哪?
你原来的代码里错误地嵌套了Kendo模板的#: ... #语法,还过度转义了#符号,导致Kendo根本无法识别data.${field}的实际值,反而把#:data.field#当成了纯字符串传给kendo.parseDate,自然没法完成日期格式化。
正确的模板写法
你只需要简化模板结构,去掉不必要的转义和嵌套语法,直接在#: ... #里编写日期处理逻辑就行:
ES6模板字符串写法(推荐,可读性更高)
fldInfo.template = `<a href="#">#: kendo.toString(kendo.parseDate(data.${field}), "MM/dd/yyyy") #</a>`;
ES5字符串拼接写法
fldInfo.template = '<a href="#">#: kendo.toString(kendo.parseDate(data.' + field + '), "MM/dd/yyyy") #</a>';
额外补充说明
- 关于
kendo.parseDate:如果后端返回的是.NET默认的JSON日期格式(比如"/Date(1698729600000)/"),kendo.parseDate可以自动把它解析成JavaScript Date对象;如果后端已经返回ISO标准日期字符串(比如"2023-11-30T00:00:00"),其实可以省略parseDate,直接用kendo.toString(data[field], "MM/dd/yyyy")即可。 - Kendo模板语法规则:
#: 表达式 #用于输出经过HTML编码的表达式结果,内部直接写JavaScript逻辑就好,完全不需要再嵌套#: ... #。
这样修改后,模板就能正确读取data中的日期字段,并格式化为你需要的MM/dd/yyyy样式了。
内容的提问来源于stack exchange,提问作者Developer
相关产品推荐
相关产品推荐

