如何通过模板从数据源向Kendo Grid获取TemplateFileData的FileName?
问题分析与解决方案
核心问题点
- 数据源未指向正确数据集:你当前Grid的数据源绑定的是
viewModel.get("entity"),但实际文件列表数据应该在entity下的TemplateFileData数组中,导致Grid拿不到要展示的文件数据。 - 字段/模板路径不匹配:如果
TemplateFileData的每个元素包含FileName字段,要么是你模板里的字段路径不对,要么是列的field设置和实际数据结构不匹配,同时要注意Kendo模板对字段名大小写敏感,别写错。
修正方案
1. 修正数据源指向
把数据源改成指向TemplateFileData数组:
$("#attachmentsGrid2").kendoGrid({ columns: [{ field: "FileName", template: "<strong>#: FileName# </strong>" }], dataSource: viewModel.get("entity.TemplateFileData") // 修正这里的数据源路径 }).data("kendoGrid");
2. 验证数据结构(排查必备)
先在控制台打印数据,确认TemplateFileData的结构是否符合预期:
console.log(viewModel.get("entity.TemplateFileData"));
检查输出的数组中每个对象是否确实存在FileName字段,注意大小写是否一致(比如别写成filename或FileName拼写错误)。
3. 嵌套字段的处理(如果适用)
如果FileName是嵌套在文件对象的子属性里(比如每个文件对象有FileInfo属性,里面才是FileName),模板要调整路径:
template: "<strong>#: FileInfo.FileName# </strong>"
内容的提问来源于stack exchange,提问作者nick glav
相关产品推荐
相关产品推荐

