2

我有一个文本字段:

xtype: "fieldset",
items:[
   {
    xtype: "textfield",
    name: "dateScanned",
    label: "Datum",
    disabled: true,
    tpl: "{dateScanned:date('d/m/Y H:i')}"  // <--- this dosn't work
   }
]

我的商店是:

fields: [
    { name: 'dateScanned', type: 'date', dateFormat: 'c' }
]

为什么标记点不起作用?我怎样才能意识到日期是格式化的?

4

3 回答 3

2
/*Override to allow textfields to format dates*/
Ext.override(Ext.field.Text, {
    setValue: function (value) {
        if (this.config.dateFormat && value) {
            if (Ext.isDate(value)) {
                value = Ext.Date.format(value, this.config.dateFormat);
            }
            else {
                var d = new Date(value);
                value = Ext.Date.format(d, this.config.dateFormat);
            }
        }
        this.callSuper(arguments);
    }
});
于 2013-12-20T10:15:12.163 回答
1

MyApp 你在哪里插入那个覆盖?如果我在 app/field/Text.js 下添加一个新的 Text.js 并将其链接到 require 它不起作用

解决方案

/*Override to allow textfields to format dates*/
Ext.define('MyApp.field.Text', {
override: 'Ext.field.Text', 
    setValue: function (value) {
        if (this.config.dateFormat && value) {
            if (Ext.isDate(value)) {
                value = Ext.Date.format(value, this.config.dateFormat);
            }
            else {
                var d = new Date(value);
                value = Ext.Date.format(d, this.config.dateFormat);
            }
        }
        this.callSuper(arguments);
    }
});

您在项目 Project/app/field/Text.js 中创建一个文件夹并将代码放入然后在需要添加

requires: [            
        'MyApp.field.Text'
    ],
于 2015-07-30T06:21:04.143 回答
0

我有一个解决方案:

dateFormat 而不是 tpl

xtype: "fieldset",
items:[
   {
    xtype: "datepickerfield",
    name: "dateScanned",
    label: "Datum",
    disabled: true,
    dateFormat: "d.m.Y H:i"
    //tpl: "{dateScanned:date('d/m/Y H:i')}"  // <--- this dosn't work
   }
]

我不知道,但我相信要记住设置双问号很重要。

于 2013-08-23T10:06:22.103 回答