Значения ExtJS TextField, представленные в виде строки вместо целого числа/числа

У меня есть сетка Ext Editor с числовой колонкой. Редактор столбца установлен на Ext.form.TextField. Эта сетка заполняется JSON, а данные отправляются в формате JSON.

Моя проблема в том, что когда пользователь вводит число в этот столбец, оно отправляется в виде строки вместо числа. Другими словами, это выглядит так: Свойство: "500", а мне нужно вот это, Свойство: 500.

Мое определение столбца:

new Ext.grid.NumberColumn ({
            header: 'Area (ha)',
            dataIndex: 'Area',
            format: '0',
            width: 60,
            editor: new Ext.form.TextField({
                allowBlank: false
            })
        })

И определение поля для этого столбца:

{ name: 'Area'}

Я пробовал это, но это ничего не делает:

{ name: 'Area', type: 'int' }

Любые идеи? Спасибо!


person Brady    schedule 07.10.2010    source источник
comment
Вы должны принять первый ответ здесь.   -  person Erik Kaplun    schedule 22.11.2011


Ответы (2)


Нашел разрешение. По-видимому, есть Ext.form.NumberField. Его нет в документации ExtJS, мне пришлось его искать.

person Brady    schedule 07.10.2010

Также полезно отметить, что для фактического получения типизированных значений из формы getValues не подходит.

Ext.form.Basic также имеет метод getFieldValues, который будет возвращать значения в том виде, в котором они вам нужны, при отправке POST в формате JSON (или в другом нестроковом формате). Это вернет numberfields как целые числа, флажки как логические значения и т. д.

P.S. getFieldValues — это просто оболочка вокруг getValues; он использует недокументированный 4-й параметр, называемый useDataValues, имя которого, конечно, сбивает с толку, не говоря уже об имени getFieldValues.

person Erik Kaplun    schedule 22.11.2011