我有那个用货币显示金额的数字文本框。我想显示我的模型的货币,但该数字文本框始终显示文化的货币。对于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;" })
)
答案 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
是小数位数。
按照片段显示。
$("#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;
答案 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
});
然后打印您的模型货币符号。