San*_*man 5 javascript unicode export kendo-ui kendo-grid
我一直在尝试将语言动态合并到 Kendo 控件中,但遇到了中文翻译的问题,这些翻译在 Sql Server 数据库中存储为 Unicode 列表。
通过使用 columntemplate属性,很快就启动并运行 Kendo Grid 以显示这些 Unicode 中文:
template: '#= Translation #'
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是 Excel/PDF 导出。它们不呈现 Unicode 值,与 Kendo Grid 通过使用template. 相反,它们显示默认字体字符:
在对该问题进行研究后,我尝试了以下解决方案,但无济于事:
按照此建议设置网格控件的字体系列;(为了与网站的其余部分保持一致,我并不特别想这样做,也不明白为什么这会起作用,因为实际的 Kendo Grid 本身可以完美地显示汉字):
.k-widget {
font-family: 'Arial Unicode MS';
}
Run Code Online (Sandbox Code Playgroud)将列encoded属性设置为 true:
{ field: "AnalyteName", title: "Analyte", attributes: { "class": "customKendoGridCell"}, width: "25%", encoded: true, template: '#= TranslationField #' },
Run Code Online (Sandbox Code Playgroud)如果要在模板中呈现编码的 HTML 值,Kendo UI 模板可以自动处理编码。
template: '#=setFieldName(TranslationField)#'
function setFieldName(TranslationField) {
return kendo.template("<div id='box'>#: TranslationField #</div>");
}
Run Code Online (Sandbox Code Playgroud)这似乎显示了整个函数而不仅仅是字段,也许kendo.template需要在 Kendo Grid 列的上下文中以不同的方式使用?
我制作了一个Dojo 示例来演示 PDF 导出的问题。
我从未遇到过 Unicode 问题,不过,我知道一个可能对您有帮助的解决方案。
.k-grid {
font-family: "DejaVu Sans", "Arial", sans-serif;
}
Run Code Online (Sandbox Code Playgroud)
在网格文件中使用此行,就像在剑道中一样,标准 PDF 字体不支持 Unicode 字符。
| 归档时间: |
|
| 查看次数: |
3889 次 |
| 最近记录: |