当模型具有ID = 0时,ExtJS文本字段或组合框defaultValue

时间:2014-07-29 17:06:25

标签: extjs extjs4 extjs4.1 extjs4.2 extjs-mvc

在我的应用程序(ExtJS 4.2.1)中,我有一个用于创建新记录并将其保存到数据库的窗口。

当我创建窗口并显示它时,我创建了一个新记录并将其分配给窗口窗体记录:

 onNewPunchClick: function(button, e, options) {
        var me = this;

        var win = Ext.create('App.view.attendance.punch.EditPunch'),
            editForm = win.down('#editForm');

        var newRec = Ext.create('App.model.attendance.DailyTime', {
            AttendanceId: 0,
            EmployeeId: 0,
            SensorId: 0,
            IsManual: true,
            IsActive: true
        });

        // load record to form
        editForm.loadRecord(newRec);

        win.show();
    },

然后显示我的表单,但有些字段的字符“0”如下:

enter image description here

所以我试图解决这个问题,但我无法正常工作:

  

我尝试在模型中使用convert函数,该函数在0值时返回' '

     

我也试图在模型中使用defaultValue而没有任何成功。

     

我在创建模型时尝试设置EmployeeId: ''但没有成功。

我应该缺少一些东西,真的很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

效果很好的解决方案是:

在您的模型中设置您希望具有所需行为的属性,如下所示:

{ name: 'EmployeeId', type: 'int', defaultValue: '', convert: null },

然后在创建模型时将属性设置为undefined。

var newRecord = Ext.create('CustomModel',{
    EmployeeId: undefined
});

然后加载表单:

form.loadRecord(newRecord);

提交表格后:

form.updateRecord(newRecord);