ExtJs: почему числовое поле автоматически преобразует ноль в 0 при отображении данных - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть форма Extjs, в которой мы можем назначить возраст для человека.Поэтому, когда я присваиваю пустое поле в поле Возраст и сохраняю его в БД, это хорошо работает (в БД возраст остается пустым).Но когда я пытаюсь обновить и отобразить его снова, он показывает 0.

Я пробовал с allowBlank: true, но это не работает.Это также не работает: https://www.sencha.com/forum/showthread.php?181270-Hi-how-can-i-set-null-for-a-numberfield

Форма:

Ext.define('com.view.xxxx.entities.forms.yyyyyyy', {
    statics: {
        buildItems: function ()
        {
            return [
                {
                    xtype: 'fieldset',
                    title: 'Person',
                    defaultType: 'textfield',
                    defaults: { anchor: '100%'},
                    items: [
                            {fieldLabel: 'Age', name: 'age', xtype: 'numberfield', labelWidth: 130}
                        ]
                }
            ]
        }
    }
});

Как заставить числовое поле отображать данные из БД как пустые, то есть пустые?

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Я предпочитаю использовать поле Number в модели с переменной allowNull.

И allowBlank должно быть истинным в numberfield.

Пример.

Ext.define('Person', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'age', type: 'number', allowNull: true }
    ]
});
0 голосов
/ 25 сентября 2019

Я предлагаю использовать Модель, которая преобразует любое нечисловое значение в пустую строку, и использовать эту модель в вашей форме:

 Ext.define('Fiddle.model.ageModel', {
            extend: 'Ext.data.Model',
            requires: [
                'Ext.data.field.Field'
            ],
            fields: [{
                name: 'name'
            }, {
                name: 'age',
                convert: function (v, rec) {
                    return typeof (v) === 'number' ? v : '';
                },

            }]
        });

См. пример

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...