Kendo UI 数字格式无效的模板
Posted
技术标签:
【中文标题】Kendo UI 数字格式无效的模板【英文标题】:Kendo UI Number Formatting Invalid template 【发布时间】:2017-04-17 16:07:20 【问题描述】:我正在使用 kendo ui,我尝试设置一个工具提示模板,如下所示:
tooltip.template = "#= series.name #: #= kendo.toString(value, 'n') # "
但像 527266 这样的数字显示如下:527.266,00
我怎样才能使它成为 527.266 ?
我试过作为测试:
tooltip.template = "#= series.name #: #= kendo.toString(value, '##,#') # "
这是文档中的一个示例,根据示例应该给出 527,266,但它捕获了 Invalid Template 的错误。
如何让数字 527266 看起来像 527.266
【问题讨论】:
【参考方案1】:您可以使用(kendo.toString(527266 , 'n0')
隐藏十进制数字。由于它是特定于文化的,因此您需要包含特定于文化的 javascript 文件。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<script src="http://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="http://kendo.cdn.telerik.com/2016.3.1028/js/kendo.all.min.js"></script>
</head>
<body>
<p>Input: 527266</p>
<p>Output: <span id="result"></span></p>
<script src="http://kendo.cdn.telerik.com/2013.2.716/js/cultures/kendo.culture.de-DE.min.js"></script>
<script>
kendo.culture("de-DE");
$("#result").text(kendo.toString(527266 , 'n0')); // outputs "527.266"
</script>
</body>
</html>
【讨论】:
【参考方案2】:我很高兴找不到另一种剑道格式的方法。到目前为止,我使用的唯一解决方法是:
template: "#= formatAmount(FundCurrency ,FundValue) #"
并在你的 Js 中创建一个函数。
function formatAmount(currency, amount)
if (amount) return currency + " " + kendo.toString(amount, "#,##0.00");
return "";
所有这些麻烦只是因为格式中的#与特殊标签#= ...#冲突,除非你开始使用“\#,\#\#0.00”来格式化字符串,否则它不会起作用,我猜。
【讨论】:
【参考方案3】:我遇到了和你一样的问题,虽然我想显示最多 6 位小数但不完整为 0,即:“123,123456”应该看起来像“123,123456”但“123,12”像“ 123,12",没有尾随 0。
如果你不想要小数位,那么你可以使用:
template: "#= kendo.format("0:n0", value) #
或者改变 n0 的 0 部分以添加固定的小数位。例如,对于 3 位小数,它将如下所示:
template: "#= kendo.format("0:n3", value) #
现在,如果你想要我需要的,即动态的小数位数,那么唯一的方法就是使用 js 函数:
template: "#= formatAmount(value) #
function formatAmount(amount)
return kendo.toString(amount, "#,###.######");
【讨论】:
以上是关于Kendo UI 数字格式无效的模板的主要内容,如果未能解决你的问题,请参考以下文章