在商店中形成日期

时间:2016-05-09 14:52:35

标签: extjs extjs5

如何格式化商店数据,在我的情况下,它是返回日期,我将它绑定到Comobox

var comboDate = new Ext.form.ComboBox({
displayField: 'date',
valueField: 'date',
store: {
    type: 'webapi',
    autoLoad: true,        
    api: {
        read: 'api/Report/GetDate'
    }        
}
});

将它绑定为“Mon May 9 00:00:00 EDT 2016”

我尝试了几件事来解决它 -

 dateFormat: 'c'
     

   renderer: Utility.Formatting.ShortDateTime

请建议我如何在商店中应用日期格式

UPDATING 在这里我添加完整的代码 - 我试图将日期绑定到网格中的组合框。

 header: 'From Date', dataIndex: 'date',  editor: comboDate, renderer: comboBoxDateRenderer(comboDate)
 var comboBoxDateRenderer = function (comboDate) {
return function (value) {       
    var idx = comboDate.store.find(comboDate.valueField, value);//Ext.util.Format.date(value, "Y-m-d")
    var rec = comboDate.store.getAt(idx);
    return (rec === null ? '' : rec.get(comboDate.displayField));
};
    }

var comboDate = new Ext.form.ComboBox({
displayField: 'date',
valueField: 'date',
//dateFormat: 'c',
store: {
    type: 'webapi',
    autoLoad: true,
    fields: [
          { name: 'date', type: 'date', dateFormat: 'c' }
    ],
    api: {
        read: 'api/Report/GetDate'
    }        
}
});

1 个答案:

答案 0 :(得分:0)

该值是标准日期对象。您可以使用XTemplates格式化displayfield:https://fiddle.sencha.com/#fiddle/1a37

列表模板:

tpl: Ext.XTemplate(
    '<tpl for=".">'+
    '<div class="x-boundlist-item">' +
    '{[Ext.util.Format.date(values.date, "d/m/y")]}' +
    '</div>'+
    '</tpl>'
),

显示字段模板:

displayTpl: Ext.XTemplate(
    '<tpl for=".">'+
    '{[Ext.util.Format.date(values.date, "d/m/y")]}'+
    '</tpl>'
),

请记住,这只是纯格式化显示输出。