Ноль вместо NULL в ComboBox (ExtJS 4.2) - PullRequest
0 голосов
/ 19 марта 2019

Я работаю со старой версией ExtJS (4.2) и добавил комбо-бокс к одной из форм редактирования в моем приложении.

ComboBox выглядит так:

Ext.define('RgiApp.view.ImjestoTipObjektaCombo2', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.imjestoTipObjektaCombo2',
requires: 'RgiApp.store.ImjestoTipObjektaStore2',
fieldLabel: 'Vrsta obilježja II',
name: 'vrstaobiljezjaid2',
displayField: 'name',
valueField: 'id',
matchFieldWidth: true,
queryMode: 'local',
forceSelection: false,
typeAhead: true,
minChars: 2,
//listWidth: 200,
//width: 200,
//minListWidth : 200,
store: 'RgiApp.store.ImjestoTipObjektaStore2'
});

Поле со списком заполняется записями из базы данных и работает нормально, но когда я редактирую запись, которая содержит значение NULL в этом поле, значение обнуляется (рисунок ниже).

enter image description here

Я хочу, чтобы поле со списком было пустым, если есть значение NULL, поэтому оно оставляет значение NULL, если оставлено так. Таким образом, я должен вручную удалить ноль перед отправкой формы.

EDIT:

Я добавил свойство emptyText в свой выпадающий список, и теперь форма содержит этот текст, если я создаю новую запись, но при редактировании она все еще равна нулю. Эти значения равны NULL в базе данных.

Ответы [ 2 ]

1 голос
/ 19 марта 2019

Попробуйте добавить свойство emptyText к определению вашего списка. Ext.form.field.Text-cfg-emptyText Combobox наследует его из элемента управления Text.

0 голосов
/ 20 марта 2019

Мне удалось решить это.

Я установил forceSelection в "true" и добавил функцию beforeBlur следующим образом:

Ext.define('RgiApp.view.ImjestoTipObjektaCombo2', {
extend: 'Ext.form.field.ComboBox',
alias: 'widget.imjestoTipObjektaCombo2',
requires: 'RgiApp.store.ImjestoTipObjektaStore2',
fieldLabel: 'Vrsta obilježja II',
name: 'vrstaobiljezjaid2',
displayField: 'name',
valueField: 'id',
matchFieldWidth: true,
queryMode: 'local',
forceSelection: true,
typeAhead: true,
minChars: 2,
store: 'RgiApp.store.ImjestoTipObjektaStore2',
// Allow empty value in combobox
beforeBlur: function(){
    var value = this.getRawValue();
    if(value == ''){
        this.lastSelection = [];
    }
    this.doQueryTask.cancel();
    this.assertValue();
}
});

Нет больше нулей, теперь поле со списком пусто, если запись в базе данных пуста, и это позволяет мне удалить значение, чтобы я мог передать NULL.

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