【问题标题】:Adding a % sign to a percentage in Kendo NumericTextBox在 Kendo NumericTextBox 中为百分比添加 % 符号
【发布时间】:2013-01-02 19:35:23
【问题描述】:

尝试将 % 符号添加到 Kendo NumericTextBox 中的数字。他们建议这样转义 % 符号:

$("#numeric").kendoNumericTextBox({
    format: "# \%"
});

但是当我给它一个值 3 时,它仍然给我 300%!

来自剑道文档:

"%" - 百分比占位符 将一个数字乘以 100 并插入一个 结果字符串中的本地化百分比符号。注意:'%' 符号是 解释为格式字符串中的格式说明符。如果你需要 防止这种情况发生,您需要在“%”符号前加上反斜杠 - 'kendo.toString(12, "# \%")' -> 12 % (en-us)。

【问题讨论】:

  • 如果值为 3,则打印为 300% 是正确的,错误的是 KendoUI 示例。意识到它说的是乘以 100。如果你去 kendo.toString 文档here 这里的例子说使用kendo.toString(0.12, "p"); 来获得 12.00 %。所以你应该使用0.03 来获取3%

标签: kendo-ui kendonumerictextbox


【解决方案1】:

我在 .cshtml 文件中的网格列中工作,对我来说,以下是有效的:

  Format("{0:#.## \\'%'}");

请注意 % 符号周围的两个单引号。

【讨论】:

  • 工作解决方案。使用 ASP.NET MVC 帮助器初始化网格时,单引号似乎至关重要。
【解决方案2】:

您看到this 论坛帖子了吗?看起来你需要用两个斜线来逃避它......

http://jsbin.com/aruqeh/1/

【讨论】:

    【解决方案3】:
    $("#numeric").kendoNumericTextBox({
      format: "# \\%"
    });
    

    【讨论】:

      【解决方案4】:

      作为此处其他答案的补充,我想补充一点,如果您使用带有 ASP.NET Razor 视图语法的 Kendo UI,并且您的格式字符串必须从输入标签本身传入,您需要将 Kendo UI 格式字符串转换为字符串文字,否则 JavaScript 最终会转义您的转义字符。例如,在我现在正在处理的应用程序中,我们有一个自定义数据字段,用于 html 助手用来创建 Kendo NumericTextBox 的格式。

      例子:

      <input data-custformat="##.##\\%" value="12"/>
      

      无法正确呈现格式。输出看起来像 1200\%,因为双反斜杠被转义为单反斜杠,并且该字段保持默认的 Kendo 百分比行为,即将该字段的值乘以 100。

      然而,

      <input data-custformat=@(@"##.##\%") />
      

      正确格式化数字,并覆盖默认的剑道百分比行为。请注意,在字符串文字中,只使用了一个反斜杠。

      这是一个小众且微妙的问题,但在尝试将 Kendo UI 与 ASP.NET MVC 集成时引起了一些挫折。

      【讨论】:

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