我一直在尝试将语言动态地合并到Kendo控件中,并且遇到了中文翻译的问题,这些翻译在Sql Server数据库中存储为Unicode列表。
通过使用template
列属性,没有多长时间让Kendo Grid运行起来以中文显示这些Unicodes:
template: '#= Translation #'
我遇到的问题是Excel / PDF导出。它们不会呈现Unicode值,就像Kendo Grid通过使用template
一样。相反,它们显示默认字体字符:
我在研究这个问题后尝试了以下解决方案,但无济于事:
在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 Grid列的上下文中以不同方式使用kendo.template
?
我已经制作了Dojo example来证明PDF导出的问题。
答案 0 :(得分:0)
我从来没有遇到过Unicode的问题,但我知道一个可以帮助你的解决方案。
.k-grid {
font-family: "DejaVu Sans", "Arial", sans-serif;
}
在网格文件中使用此行,如在kendo中,标准PDF字体不支持Unicode字符。