Extjs MVC :日期显示在网格中,但 loadRecord() 在单击时无法将它们加载到表单组件中



这里有点问题,应该是一个非常简单的解决方案。我有一个带有两个日期字段的合同模型:

    { name: 'startDate', type: 'datetime', dateFormat: 'M d Y'},
    { name: 'endDate', type: 'datetime', dateFormat: 'M d Y' }

在网格中,这些显示良好,例如"Mar 01 2013"。

            {
                dataIndex: 'startDate',
                text: 'Start',
                xtype: 'datecolumn',
                format: 'M d Y',
                autoWidth: true
            },
            {
                dataIndex: 'endDate',
                text: 'End',
                xtype: 'datecolumn',
                format: 'M d Y',
                autoWidth: true
            }

单击网格项时,我正在加载另一个面板,其中包含一个表单组件和两个日期字段。

                    {
                        xtype: 'datefield',
                        name: 'startDate',
                        value: 'startDate',
                        width: 300,
                        disabled: true,
                        hidden: false,
                        fieldLabel: 'Starts'
                    },
                    {
                        xtype: 'datefield',
                        name: 'endDate',
                        value: 'endDate',
                        width: 300,
                        disabled: true,
                        hidden: false,
                        fieldLabel: 'Ends'
                    },

在控制器中,我只是获取表单组件并将记录传递给 loadRecord 方法。当我从记录中记录两个元素时,我得到以下数据。

2012-03-01T12:00:00

2013-03-01T12:00:00

问题是表单的日期字段不会将日期加载到其中进行编辑。这似乎是某种格式或绑定问题。有什么想法吗?谢谢!

在模型中,将type: 'datetime'替换为 type: 'date' ,并删除dateFormat,这是预期的数据格式(或将其配置为匹配您的响应日期格式)。显示格式是您在网格中配置的格式,并且应在日期字段中配置。

这样,响应数据将由模型解析为Date对象,并且此日期对象将由网格和字段正确解释。

最新更新