ExtJS网格日期字段编辑器在失去焦点后更改值

时间:2014-06-20 18:11:00

标签: extjs extjs4 extjs4.2

我有一个网格,对于一个单元格,我使用TimeField编辑器:

{
    text: 'InTime',
    dataIndex: 'InTime',
    editor: {
        xtype: 'timefield',
        format: 'H:i', // 24 hour format
        altFormats: 'H:i', // 24 hour format
        selectOnFocus: true,
        minValue: '12:00 AM',
        increment: 60,
        maxValue: '11:00 PM'
    }

我的单元格在编辑之前和之后都是这样的:

enter image description here

此时一切正常,当我打开下拉列表时,一切看起来都很好:

enter image description here

但是在我从列表中选择一个值并更改为其他单元格后,单元格中更新的值是一个日期时间字符串格式文本,如下所示:

enter image description here

有谁知道为什么会发生这种情况?

由于

2 个答案:

答案 0 :(得分:1)

在网格单元格字段中的编辑器渲染器:format:'g:i A'中使用格式Ext.util.Format.dateRenderer('g:i A')

{
text: 'InTime',
renderer: Ext.util.Format.dateRenderer('g:i A')
dataIndex: 'InTime',
editor: {
    xtype: 'timefield',
    format: 'H:i', // 24 hour format
    altFormats: 'H:i', // 24 hour format
    selectOnFocus: true,
    minValue: '12:00 AM',
    increment: 60,
    maxValue: '11:00 PM'
}

这是因为您始终必须指定渲染器,否则将使用您的数据值toStringDate)。网格不像编辑器(组合)那样神奇地渲染它。

答案 1 :(得分:0)

除了我在你关于H的其他帖子上留下的内容:我是24小时格式。 如果需要格式化字符串,请使用field.getRawValue()而不是getValue()获取字段值。