2017-06-12 40 views
0

由于ExtJs缺少日期时间字段,我想在网格中编辑日期时间值的最简单方法是使用文本字段。我没有找到一个验证该字段并为用户透明更新记录的简单示例。如何使用文本字段编辑日期值

这是我的网格,在这里我想补充我的编辑栏

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

回答

0

这是一种简约的方式,来处理验证和日期字符串转换透明地为用户:

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)} 
     } 
    }] 
})