Datetime 如何使用文本字段编辑日期值

Datetime 如何使用文本字段编辑日期值,datetime,extjs,extjs6,Datetime,Extjs,Extjs6,由于ExtJs缺少datetime字段,我认为在网格中编辑datetime值的最简单方法是使用textfield。我没有找到一个简单的例子来验证字段并为用户透明地更新记录 这是我网格中的列,我想在其中添加编辑器 Ext.define('Fiddle.grid.DateEdit', { columns: [{ text: 'Datetime value', dataIndex: 'mydatetime', xtype:'datecolum

由于ExtJs缺少datetime字段,我认为在网格中编辑datetime值的最简单方法是使用textfield。我没有找到一个简单的例子来验证字段并为用户透明地更新记录

这是我网格中的列,我想在其中添加编辑器

Ext.define('Fiddle.grid.DateEdit', {
    columns: [{
        text: 'Datetime value', 
        dataIndex: 'mydatetime', 
        xtype:'datecolumn', 
        format: 'Y-m-d H:i:s'
    }]
})

这是一种最低限度的方法,可以为用户透明地处理验证和日期到字符串的转换:

Ext.define('Fiddle.grid.DateEdit', {
    columns: [{
        text: 'Datetime value', 
        dataIndex: 'mydatetime', 
        xtype:'datecolumn', 
        format: 'Y-m-d H:i:s',
        editor: {
            xtype:'textfield',
            errorMessage: 'Invalid date format',
            format: 'Y-m-d H:i:s',
            validator: function(val){return val.match(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/) ? true : this.errorMessage},
            valueToRaw: function(val){return Ext.Date.format(val, this.format)},
            rawToValue: function(val){return Ext.Date.parse(val, this.format)}
        }
    }]
})