如何手动设置:kendo-ui numerictextbox的货币

How to manually set : kendo-ui numerictextbox's currency

我有一个显示货币金额的数字文本框。我想显示模型的货币,但数字文本框始终显示文化的货币。对于实验。如果我更改网站的德语语言,则此文本框会显示“€”。我如何显示我模型的货币而不是文化的货币? 或者有没有办法将 numerictextbox 的文化设置为货币的文化?

@(Html.Kendo().NumericTextBox<decimal>()
    .Name("amount")
    .Min(Model.MinPrice)       
    .Value(Model.MinPrice)
    .Format(Strings.ResourceManager.GetString(Model.Currency.ToString()) + " #.00")
    .HtmlAttributes(new { style = "width: 104px;" })
)

此外,当我查看页面源代码时,它显示:

jQuery(function(){jQuery("#Amount").kendoNumericTextBox({"format":"$ #.00"});});

但在页面中它显示“€”(当前文化的货币)而不是 $

任何人都有同样的问题这是工作版本:

<script>
    var currCulture = kendo.culture();
    currCulture.numberFormat.currency.symbol = '@Strings.ResourceManager.GetString(Model.Currency.ToString())';
</script>

@(Html.Kendo().NumericTextBox<decimal>()
     .Name("TicketOptions[" + i + "].Price")
     .Min(memberTicketOptions[i].MinPrice)
     .Value(memberTicketOptions[i].MinPrice)
     .Format(Strings.ResourceManager.GetString(Model.Currency.ToString()) + " #.00")
     .HtmlAttributes(new { style = "width: 104px;" })
 )

您应该定义 culture at NumericTextBox 级别覆盖您在页面级别定义的内容。

请记住,您需要包含与您要支持的其他文化相对应的本地化文件。你可能不止一个。

示例包括德语和英语 (GB):

<!-- Include German -->
<script src="https://kendo.cdn.telerik.com/2018.2.516/js/cultures/kendo.culture.de-DE.min.js"></script>
<!-- Include English/GB -->
<script src="https://kendo.cdn.telerik.com/2018.2.516/js/cultures/kendo.culture.en-GB.min.js"></script>

使用多种文化的示例:

  $("#deDE").kendoNumericTextBox({
    culture: "de-DE",
    value: 123.45,
    format: "c2"
  });
   $("#usUS").kendoNumericTextBox({
    culture: "us-US",
    value: 123.45,
    format: "c2"
  });
   $("#enGB").kendoNumericTextBox({
    culture: "en-GB",
    value: 123.45,
    format: "c2"
  });

货币使用格式cN,其中N是小数位数。

跟随显示它的片段。

$("#deDE").kendoNumericTextBox({
  culture: "de-DE",
  value: 123.45,
  format: "c2"
});
$("#usUS").kendoNumericTextBox({
  culture: "us-US",
  value: 123.45,
  format: "c2"
});
$("#enGB").kendoNumericTextBox({
  culture: "en-GB",
  value: 123.45,
  format: "c2"
});
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.common.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.silver.min.css" />
<link rel="stylesheet" href="https://kendo.cdn.telerik.com/2018.2.516/styles/kendo.mobile.all.min.css" />

<script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2018.2.516/js/kendo.all.min.js" 0></script>

<!-- Extra culture files -->
<script src="https://kendo.cdn.telerik.com/2018.2.516/js/cultures/kendo.culture.de-DE.min.js"></script>
<script src="https://kendo.cdn.telerik.com/2018.2.516/js/cultures/kendo.culture.en-GB.min.js"></script>


<div>German<input id="deDE" /></div>
<div>USA<input id="usUS" /></div>
<div>GB<input id="enGB" /></div>

在初始化控件之前,您需要更改剑道文化中的当前货币符号:

var currCulture = kendo.culture();
//currCulture.numberFormat.currency.symbol = '¥';
//currCulture.numberFormat.currency.symbol = '€';
//currCulture.numberFormat.currency.symbol = '$';
currCulture.numberFormat.currency.symbol = '@Model.Currency.ToString()';

$("#amount").kendoNumericTextBox({
    format: "c",
    decimals: 3,
    culture: currCulture
});

这将打印您的模型货币符号。