如何在不影响其他数字文本框的情况下将文化设置为 "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 的区域性选项。
我想知道我们如何 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 的区域性选项。