web-dev-qa-db-ja.com

KendoUIグリッドの10進数の列

重量(Kg)の列があります。ユーザーがクリックすると、3桁の10進数を入力できるようにする必要があります。

私が抱えている問題は、現時点では2か所にしか配置できず、3か所しか表示されないことです。小数点以下の桁数まで入力できますが、保存すると2桁に丸められます。

私の列は次のように設定されています:

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

私はいくつかのことを試しましたが、うまくいきませんでした。

18
imperium2335

いくつかの質問(afaik):

  1. 列のフォーマットはn4ではなく{0:n4}として定義されています。
  2. 形式は、数値の形式だけでなく、テキストを含む場合もあります。例:{0:n4} Kg.
  3. 数値列の場合、属性をdecimalsstepとして指定することはできないため、エディター関数を定義する必要があります。

また、小数と四捨五入の問題も理解できません。

私が提案するのは、列を次のように定義することです。

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

(小数点以下3桁の精度が必要であると想定)、numberEditorを次のように定義します。

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