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

时间:2013-09-17 11:09:15

标签: date extjs datefield

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

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

在网格中这些显示精细E.g. “2013年3月1日”。

            {
                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

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

1 个答案:

答案 0 :(得分:2)

在您的模型中,将type: 'datetime'替换为type: 'date',然后移除dateFormat,这是预期的数据格式(或将其配置为与您的回复相匹配)日期格式)。显示格式是您在网格中配置的格式,您应该在日期字段中进行配置。

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