2017-02-20 4 views
1

Ich benutze Kendo numericTextBox, um die Währung anzuzeigen. Ich habe die Anforderung, den Wert basierend auf der ausgewählten Währung zu formatieren. Ich bin in der Lage, die Währung korrekt für "en-US" und "de-DE" zu formatieren, aber ich habe Probleme, die Währung korrekt für Kultur zu formatieren haben unterschiedliche Gruppengröße.Wie können wir eine Währung mithilfe der Kulturgruppengröße im numerischen Kendo-Textfeld formatieren?

Alle Beispiel und Beispiel in Kendo Blog sind auf "en-US" und "de-DE", die ähnliche Gruppengröße haben.

Für "en-US" Währung groupSize Eigenschaft ist [3] was bedeutet, dass jede Gruppe nach 3 Ziffern z. 1,000,000. Aber für einige andere Kulturen, die unterschiedliche Gruppierungen haben, z.B. "en-IN", bei denen die 'groupSize' gleich [3,2,0] ist, gruppiert kendo die Gruppe nur in der Gruppe von 3: 1,000,000, während wir erwarten, dass die Gruppierung 3 Ziffern, dann Trennzeichen, dann 2-stellige Ziffern usw. ist: 10,00,000.

Kann mir jemand dabei helfen?

Hier ist mein Code Beispiel: http://dojo.telerik.com/@jayesh-jayakumar/AtojA/8

Antwort

0

Also das Problem ist, dass Sie ohne diese Funktion implementiert alte KendoUI Version verwenden. Hier ist ein Ausschnitt mit neuester Kendo-Version und es sieht aus, dass es für en-IN Diffrent verhält: http://dojo.telerik.com/aqEwun

Allerdings bin ich mir nicht sicher, ob dies exacly ist, wie es in dieser Kultur funktioniert weil es nur zwei Gruppen von Ziffern erzeugt, wie Sie können sehen Sie auf meinem Beispiel (vom Dezimaltrennzeichen ist es Gruppe von 2, Gruppe von 3 und Rest von Ziffern).

EDIT:

So wie Sie erwähnten Sie ein anderes Verhalten haben möchte, dass dies in Beispiel (ab Dezimalpunkt um eine Gruppe von drei Ziffern und dann Gruppen von 2). Es scheint, es ist ein Fehler und vielleicht wird Telerik es eines Tages beheben. Bis dahin können Sie den Wert groupSize im Kulturobjekt von [3, 2, 0] in [3, 2] ändern, um zu erreichen, was Sie wollen.

es zu beheben global in allen verknüpften Kulturen Sie folgenden Code verwenden:

for(var i in kendo.cultures){ 
    var culture = kendo.cultures[i]; 
    if(JSON.stringify(culture.numberFormat.groupSize) === '[3,2,0]'){ 
     culture.numberFormat.groupSize = [3, 2]; 
    } 
    if(JSON.stringify(culture.numberFormat.currency.groupSize) === '[3,2,0]'){ 
     culture.numberFormat.currency.groupSize = [3, 2]; 
    } 
    if(JSON.stringify(culture.numberFormat.percent.groupSize) === '[3,2,0]'){ 
     culture.numberFormat.percent.groupSize = [3, 2]; 
    } 
    } 

PS. Sie können in Erwägung ziehen, eine bessere Array-Vergleichsfunktion als JSON.stringify() zu verwenden.

Aktualisiertes Schnipsel: http://dojo.telerik.com/aqEwun/3

+0

Oh. Okay, ich werde die Version von KendoUI aktualisieren und überprüfen, wie es funktioniert. Aber wie Sie erwähnt haben, ist die Gruppierung nicht korrekt. Obwohl die ersten beiden Gruppierungen richtig markiert sind, sind die restlichen Ziffern gruppiert. Dies ist nicht wie erwartet. Ist es möglich, ein benutzerdefiniertes Währungsformat basierend auf der Gruppengröße auf der Client-Seite zu erstellen? –

+0

Ich versuchte mit benutzerdefinierten Formaten, aber ohne Erfolg. Jedoch habe ich meine Antwort mit einer Lösung aktualisiert, die die Änderungen der Kulturdefinition beinhaltet. –

+0

Vielen Dank @Jaroslaw. Diese Umgehung wird mir helfen, eine generischere Lösung zu entwickeln, um mit derselben Gruppengröße mit verschiedenen Kulturen umgehen zu können. Danke für die Einsicht. Wie Sie bereits erwähnt haben, wird Telerik bald eine Lösung für dieses Problem finden. Noch eine .. wenn Sie denken, dass meine Frage eine gültige ist, dann pls upvote. :) –

Verwandte Themen