2013-03-23 12 views
13

Mam kolumnę wagi (w kg). Kiedy użytkownik kliknie, muszę je włączyć, aby móc umieścić liczbę dziesiętną w 3 miejscach.KendoUI Grid Liczba dziesiętna kolumna

Problem jaki mam, polega na tym, że pozwala on tylko umieścić go w 2 miejscach, ale pokazuje 3 miejsca. Możesz wpisać liczbę do wielu miejsc po przecinku, ale gdy ją zapiszesz, zaokrągli ją do 2 miejsc.

Moje kolumna jest ustawiona tak:

... 
{ 
     field: "weight", 
     title: "Weight", 
     width: 40, 
     format: "n4", 
     decimals: 4, 
     step: 0.001, 
     template: "#= weight.toFixed(3)+'kg' #" 
} 
... 

Próbowałem kilka rzeczy, ale prace none.

Odpowiedz

46

Kilka pytań (AFAIK):

  1. Format w kolumnach nie jest zdefiniowany jako n4 ale jak {0:n4}.
  2. Formaty są przeznaczone nie tylko do formatu liczby, ale mogą również zawierać tekst. Przykład: {0:n4} Kg.
  3. W przypadku kolumn numerycznych nie można określać atrybutów jako decimals, step, dlatego należy zdefiniować funkcję edytora.

Ponadto nie rozumiem twoich problemów z liczbą dziesiętną i rundą.

Co proponuję jest zdefiniowanie kolumny jak:

{ 
    field: "weight", 
    title: "Weight", 
    width: 40, 
    editor: numberEditor, 
    format: '{0:n3} Kg.' 
} 

(zakładając, że chcesz trzy dokładność dziesiętną) i zdefiniować numberEditor jak:

function numberEditor(container, options) { 
    $('<input name="' + options.field + '"/>') 
      .appendTo(container) 
      .kendoNumericTextBox({ 
       format : "{0:n3}", 
       decimals: 3, 
       step : 0.001 
      }); 
}