【发布时间】:2017-12-11 12:26:30
【问题描述】:
我一直在尝试将语言动态地合并到 Kendo 控件中,但遇到了中文翻译问题,这些中文翻译存储为 Sql Server 数据库中的 Unicode 列表。
存储在数据库中的翻译
通过使用列 template
属性,很快就启动并运行了 Kendo Grid 以将这些 Unicode 显示为中文:
template: '#= Translation #'
剑道网格显示翻译
我遇到的问题与 Excel/PDF 导出有关。它们不呈现 Unicode 值,就像 Kendo Grid 通过使用 template
所做的一样。相反,它们显示默认字体字符:
PDF 导出
CSV 导出
我在研究该问题后尝试了以下解决方案,但无济于事:
-
在this recommendation之后设置网格控件的字体系列; (为了与网站的其他部分保持一致,我不想这样做,也不明白为什么这会起作用,因为实际的 Kendo Grid 本身可以完美地显示汉字):
.k-widget { font-family: 'Arial Unicode MS'; }
-
将列
encoded
属性设置为true:{ field: "AnalyteName", title: "Analyte", attributes: { "class": "customKendoGridCell"}, width: "25%", encoded: true, template: '#= TranslationField #' },
-
如果您想在模板中呈现编码的 HTML 值,Kendo UI 模板可以自动处理编码。
template: '#=setFieldName(TranslationField)#' function setFieldName(TranslationField) { return kendo.template("<div id='box'>#: TranslationField #</div>"); }
这似乎显示了整个函数而不仅仅是字段,也许kendo.template
需要在 Kendo Grid 列的上下文中以不同的方式使用?
我已发送Dojo example 来演示 PDF 导出的问题。
【问题讨论】:
-
你能解决它吗?
标签: javascript unicode kendo-ui export kendo-grid