ExtJS:日期字段在选择网格行时显示为空白

Posted

技术标签:

【中文标题】ExtJS:日期字段在选择网格行时显示为空白【英文标题】:ExtJS : datefield showing up as blank on selection of a grid row 【发布时间】:2013-07-12 22:57:56 【问题描述】:

这是我看到的一个奇怪的问题。我填充我的商店,然后使用该商店填充网格。此外,我使用 loadRecord(record) 根据在网格中选择的行填充表单 ( Ext.form.Panel )。我的 Ext.form.Panel 中的字段之一是:

xtype: 'datefield',
readOnly: true,
fieldLabel: 'End Date',
name: 'soEndDate',
id:'soEndDateField',
format: 'm/d/Y'

我的问题是这个日期字段显示为空白。我正在将数据直接放入商店。因为如果我将 xtype 更改为“textfield”,我可以看到这种格式的日期:2014-01-30T05:00:00Z。当我将 xtype 转回“datefield”时,日期又消失了!!!

我已经为此苦苦思索了几个小时,但我不确定自己犯了什么样的错误。希望有人能尽快回复:(

提前致谢。

【问题讨论】:

【参考方案1】:

您记录中的日期“soEndDate”的格式是什么?是“2014-01-30T05:00:00Z”吗?

如果是这样,那么日期字段不知道如何处理它。要么:

1) 将格式更改为

format: 'c'

2) 添加到 altFormats

altFormats: '"m/d/Y|n/j/Y|n/j/y|m/j/y|n/d/y|m/j/Y|n/d/Y|m-d-y|m-d-Y|m/d|m-d|md|mdy|mdY|d|Y-m-d|n-j|n/j|c

// c being the key here.

【讨论】:

同时得到了答案。就像你说的,它不知道如何处理那个字符串。因此,在 Ext.data.Model 定义中,我指定它是一个日期:name: 'soEndDate', type: 'date' 并且有效。非常感谢你来找我。欣赏它。也接受答案:) 是的,只要您将日期字符串放入组合中,它就必须采用正确的格式。如果您有一个实际的日期对象,那么组合框的格式无关紧要。 :) 这是真的,因此在模型本身中更好地定义它是一个日期,而不是一个字符串。谢谢朋友。

以上是关于ExtJS:日期字段在选择网格行时显示为空白的主要内容,如果未能解决你的问题,请参考以下文章

Ext JS - 根据第一个网格中的行选择在第二个网格中加载值

如何仅在单击网格中的复选框而不是单击单元格或行时选择复选框在 extjs 3.2

Extjs 日期字段手动显示选择器

ExtJS 网格:单元格编辑:如果输入的值为 <SAMPLE>,则为空白单元格

Extjs,动态过滤网格

在 ExtJs 4.1 中使用一个网格作为分组网格和普通网格