【问题标题】:Kendo UI Number Formatting Invalid templateKendo UI 数字格式无效的模板
【发布时间】: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

【问题讨论】:

    标签: kendo-ui number-formatting


    【解决方案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, "#,###.######");
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-09
          • 1970-01-01
          • 1970-01-01
          • 2018-06-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多