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

时间:2018-05-31 10:51:33

标签: asp.net-mvc kendo-ui kendo-ui-mvc

我有那个用货币显示金额的数字文本框。我想显示我的模型的货币,但该数字文本框始终显示文化的货币。对于exp。如果我更改网站的德语语言,则此文本框显示“€”。如何显示我的模型的货币而不是文化的货币? 或者有没有办法将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;" })
 )

2 个答案:

答案 0 :(得分:0)

您应该在culture级别定义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是小数位数。

按照片段显示。

&#13;
&#13;
$("#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"
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

在初始化控件之前,您需要更改kendos文化中的当前货币smybol:

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
});

然后打印您的模型货币符号。