0

Я хочу знать, как мы можем динамически устанавливать/изменять культуру в числовые элементы формата валюты, не влияя на другие числовые элементы управления в Kendo.Как установить культуру в числовое текстовое поле «currency», не затрагивая другое числовое текстовое поле?

Сценарий: У меня есть 9 текстовых полей с кэндо, из которых 4 имеют формат «Валюта». Я должен отобразить число, введенное в элемент «Валюта» в определенной «культуре», в зависимости от валюты, выбранной пользователем из раскрывающегося списка. Выпадающие элементы будут иметь намеренную культуру в качестве их значений.

Например, если выпадающий список имеет два элемента: «US-Dollar», «Euro», то Если пользователь выберет «Доллар США» из раскрывающегося списка, то цифры, введенные в «Валюта», должны получить форматирование в культуре «en-US».

Я использую приведенную ниже конфигурацию javascript для установки текстового поля кендо.

function setupNumericTextBoxes(root) { 
 
     
 
    root.find("[data-role='numerictextbox']").each(function (index, dataControlObj) { 
 

 
var textbox = $(dataControlObj).data("kendoNumericTextBox"); 
 
var numberFormat = $(dataControlObj).data("numberformat"); 
 
var cultureToSet = $(dataControlObj).data("culture"); 
 

 
var options = {}; 
 

 
      if (numberFormat === "percentage") { 
 
       options.format = "##.00 \\%" 
 
       options.decimals = 2; 
 
       options.min = 0; 
 
       options.spinners = false; 
 
      } 
 
      else if (numberFormat === "currency") { 
 
       options.format = "c" 
 
       options.decimals = 0; 
 
       options.min = null; 
 
       options.spinners = false; 
 
      } 
 
      else if (numberFormat === "year") { 
 
       options.format = "#" 
 
       options.decimals = 0; 
 
       options.min = 0; 
 
       options.spinners = false; 
 
       setUpYearValidation(dataControlObj); 
 
      } 
 
      else if (numberFormat === "standard") { 
 
       options.format = "n0" 
 
       options.decimals = 0; 
 
       options.min = 0; 
 
       options.spinners = false; 
 
      } 
 
      else { 
 
       options.format = "n0" 
 
       options.decimals = 0; 
 
       options.spinners = false; 
 
      } 
 

 
      if (cultureToSet){ 
 
       options.culture = cultureToSet; 
 
      } 
 

 
      textbox.setOptions(options); 
 
      // Apply the format 
 
      textbox.value(textbox.value()); 
 

 
     }); 
 
    
 

Нужна помощь, чтобы решить эту проблему.

ответ

0

Чтобы использовать параметр конфигурации культуры в NumericTextBox, вы также должны убедиться, что вы включили соответствующий файл kendo.culture.LANGUAGE.min.js для каждой культуры, которую хотите поддерживать, в противном случае информация о формате культура не будет включена в массив kendo.cultures, который используется kendo для получения параметров форматирования.

http://docs.telerik.com/kendo-ui/api/javascript/ui/numerictextbox#configuration-culture

Так что, если вы хотите поддержать "EN-US" и "ан-IE" необходимо включить оба

kendo.culture.en-IE.min.js (что создает в kendo.cultures [ "ан-IE"] вход)

И

kendo.culture.en-US.min.js (который создает kendo.cultures [ "EN-US"] запись).

Тогда вы можете использовать «en-US» и «en-IE» в качестве опции культуры для NumericTextBox.

Демонстрация: http://dojo.telerik.com/@Stephen/IhUre

+0

Благодарим за помощь. Я включил требуемую культуру на страницу, но моя забота заключается в применении определенной культуры к определенному одномерному элементу управления текстовыми полями, остальные числовые текстовые поля принимают по умолчанию «en-US». Я хочу знать, как этого избежать. Я просто хочу, чтобы только один элемент управления был специфическим для культуры. Чтобы быть конкретным, как в вашем примере, я просто хочу, чтобы #euro числовой элемент управления текстовыми полями был «en-IE» конкретным и другим элементом управления без какой-либо культуры. –

+0

можете ли вы проверить правильность этой реализации? Я определяю культуру одного элемента управления и не указывал его другому. ** [Текстовое текстовое поле для конкретных культур] (http://dojo.telerik.com/@jayesh-jayakumar/erILo/4) ** –

+0

Это выглядит отлично. Если вы не укажете культуру, тогда будет применена культура по умолчанию (которую я считаю, что kendo использует en-US, если вы не укажете ее, используя kendo.culture()). –

Смежные вопросы