Как установить вручную: валюта kendo-ui numerictextbox - PullRequest
0 голосов
/ 31 мая 2018

У меня есть тот числовой текст, который показывает сумму в валюте.Я хочу отобразить валюту моей модели, но в этом числовом текстовом поле всегда отображается валюта культуры.Для опытаЕсли я изменю язык веб-сайта на немецкий, в этом текстовом поле будет отображаться "€".Как я могу отобразить валюту моей Модели вместо валюты культуры?Или, может быть, есть способ установить культуру 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 голосов
/ 31 мая 2018

Вам необходимо изменить текущую валюту 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
});

После этого будет напечатан символ валюты вашей модели.

0 голосов
/ 31 мая 2018

Вы должны определить culture на уровне NumericTextBox, перезаписывая то, что вы определили на уровне страницы.

Помните, что вам нужно включить файл локализациисоответствующие дополнительным культурам, которые вы хотите поддержать.У вас может быть более одного.

Пример включает немецкий и английский (ГБ):

<!-- 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для currency , где 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>
...