Как установить для культуры "валютное" числовое текстовое поле, не затрагивая другие числовые текстовые поля?

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

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

Например: если в раскрывающемся списке есть два элемента: "Доллар США", "Евро", то, если пользователь выбирает "Доллар США" из раскрывающегося списка, числа, введенные в элемент управления "Валюта", должны быть отформатированы в "ru". -США "культура.

Я использую приведенную ниже конфигурацию 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());

        });
   
   

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

1 ответ

Решение

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

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

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

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

А ТАКЖЕ

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

Затем вы можете использовать "en-US" и "en-IE" в качестве параметра культуры для NumericTextBox.

Демо: http://dojo.telerik.com/@Stephen/IhUre

Другие вопросы по тегам