2014-11-15 10 views
0

我正在使用Kendo網格(版本2014.1.318),在「de-DE」文化中進行內嵌編輯。所以數字應該使用逗號(,)作爲小數點分隔符,例如:79,5。KendoUI在線編輯帶有其他文化的數字文本框

在「編輯」模式下,網格中的數字文本框顯示期望的格式。這裏沒問題。但是當我點擊「更新」按鈕時,它將「79.5」而不是「79.5」發回我的服務器。我的服務器配置了「DE-DE」文化,ModelBinder無法處理該格式的數字,因此將ZERO指定給我的變量。

這是一個已知的錯誤還是我錯過了什麼?當我使用「en-US」文化或任何使用句點(。)作爲小數點分隔符的文化時,一切都很好。

+0

這有幫助嗎? [Kendo全球化](http://docs.telerik.com/kendo-ui/aspnet-mvc/globalization) –

+0

我已經在服務器和客戶端都使用了相同的文化,但不起作用。 –

回答

0

你包括kendo.culture.de-DE.min.js文件:

是否更改了劍道文化:

kendo.culture("de-DE"); 

最後,你也可以嘗試改變在數字文本框中的文化:

@Html.Kendo().NumericTextBox().Culture("de-DE") 
+0

正如我已經提到的那樣,當在「編輯」模式下時,網格中的數字文本框正在顯示預期的格式。這裏沒問題。「當然,我已經完成了你提到的那些。否則,我不會說'正在顯示預期的格式。 –

0

我們現在有同樣的問題一年了。看來Telerik解決這個問題的優先級不高,或者我們錯過了解決方案。

這就是我們如何解決它:

通過這個功能,電網的數據功能創建和更新喜歡這裏:

.Update(update => update.Action("Update", "Gradings").Type(HttpVerbs.Put).Data("convertDecimals"))) 

function convertDecimals(data) { 
    for (var property in data) { 
    var value = data[property]; 
    if (typeof value === "number") { 
     // if the number is integer 
     if (value % 1 == 0) { 
     data[property] = value.toString(); 
     } 
     else { 
     data[property] = kendo.toString(value, "n"); 
     } 
    } 
    } 
} 

,這對編輯:

.Events(events => events.Edit("replaceDecimalSign")) 

function replaceDecimalSign(data) { 
    var value = $(data).val(); 
    var converted = value.toString().replace('.', ','); 
    $(data).val(converted); 
} 

而且你需要正確的文化設置,如MohQut回答的alreay。

kendo.culture("de-DE"); 
+0

我會試一試,並會更新你。 –