如何将文化设置为"货币"数字文本框而不影响其他数字文本框?

时间:2016-11-23 10:20:49

标签: javascript kendo-ui currency-formatting kendonumerictextbox

我想知道如何动态设置/更改文化“货币”#39;格式化数字控件,而不影响Kendo中的其他数字控件。

场景: 我有9个剑道数字文本框,其中4个是"货币"格式。我必须显示输入的数字" Currency"控制特定的文化"基于用户从下拉列表中选择的货币。下拉项目将有意将文化设置为其值。

例如:如果下拉列表有两个项目:" 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());

        });
   
   




需要帮助才能解决问题。

1 个答案:

答案 0 :(得分:0)

为了使用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