0

我想知道如何在不影響Kendo中的其他數字控件的情況下,將文化動態設置/更改爲「貨幣」格式的數字控件。如何將文化設置爲「貨幣」數字文本框而不影響其他數字文本框?

場景: 我有9劍道數值文本框出其中有4個是「貨幣」格式。我必須根據用戶從下拉菜單中選擇的貨幣,在特定的「文化」中顯示輸入到「貨幣」控制中的號碼。下拉項目將有意將文化設定爲它們的價值。

例如:如果下拉菜單中有兩項:「美元」,「歐元」,則 如果用戶從下拉菜單中選擇「美元」,則輸入「貨幣」被格式化爲「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使用的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」]條目)

AND

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()指定它)。 –

相關問題