如何在不影响其他数字文本框的情况下将文化设置为 "currency" 数字文本框?

How to set culture to "currency" numeric textbox without affecting other numeric textbox?

我想知道我们如何 set/change 动态培养 'currency' 格式数字控件而不影响 Kendo 中的其他数字控件。

场景: 我有 9 个 kendo 数字文本框,其中 4 个是 "Currency" 格式。我必须根据用户从下拉列表中选择的货币,在特定 "culture" 中显示输入到 "Currency" 控件中的数字。下拉项目将预期的文化设置为它们的值。

例如:如果下拉列表有两个项目:"US-Dollar","Euro",那么 如果用户从下拉列表中选择 "US Dollar",则在 "Currency" 控件中输入的数字应采用 "en-US" 文化格式。

我正在使用下面的 javascript 配置来设置 kendo 数字文本框。

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

        });
   
   

需要帮助解决问题。

为了使用 NumericTextBox 的文化配置选项,您还必须确保包含您要支持的每种文化对应的 kendo.culture.LANGUAGE.min.js 文件,否则文化的格式信息将不包含在 kendo 用来获取格式选项的 kendo.cultures 数组中。

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

所以,如果你想支持 "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