web-dev-qa-db-fra.com

Colonne KendoUI Grid Decimal number

J'ai une colonne pour le poids (en Kg). Lorsque l'utilisateur clique dessus, je dois leur permettre de mettre un nombre décimal à 3 endroits.

Le problème que j'ai est pour le moment qu'il ne leur permet que de le mettre à 2 endroits, mais s'affiche comme 3 endroits. Vous pouvez taper un nombre à plusieurs décimales, mais lorsqu'il l'enregistre, il l'arrondit à 2 positions.

Ma colonne est configurée comme suit:

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

J'ai essayé quelques trucs mais aucun n'a fonctionné.

18
imperium2335

Plusieurs questions (afaik):

  1. Le format dans les colonnes n'est pas défini comme n4 mais comme {0:n4}.
  2. Les formats ne sont pas seulement pour le format du nombre mais peuvent également inclure du texte. Ex: {0:n4} Kg.
  3. Pour les colonnes numériques, il n'est pas possible de spécifier des attributs comme decimals, step, vous devez donc définir une fonction d'éditeur.

De plus, je ne comprends pas vos problèmes avec les décimales et les arrondis.

Ce que je suggère, c'est de définir les colonnes comme:

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

(en supposant que vous vouliez une précision de trois décimales) et définissez numberEditor comme:

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