【问题标题】:ExtJs Grid.Panel does not sort java.sql.TimestampExtJs Grid.Panel 不排序 java.sql.Timestamp
【发布时间】:2013-11-04 07:44:25
【问题描述】:

我在 Java EE Web 应用程序中使用 Ext JS 4.1。

我有一个 Ext.grid.Panel,其中显示了一些日期。 日期存储在 DB2 中。所以我的 Pojo 使用 java.sql.Timestamp。

Ext.data.Model 看起来像:

Ext.define('schedulerTask', {
    extend : 'Ext.data.Model',
    fields : [ {
        name : 'histTimestamp',
        type : 'date',
        sortType : 'asDate'
    }]
});

面板看起来像:

var schedulerTasksHistGrid = Ext.create('Ext.grid.Panel', {
    title : 'History',
    store : schedTaskHistStore,
    columns : [ {
        text : "No:",
        xtype : 'rownumberer',
        width : 30
            }, {
        xtype : 'datecolumn',
        format : 'd/m/Y H:i:s',
        text : "histTimestamp",
        dataIndex : 'histTimestamp'
    }],

    renderTo : 'grid_sched_tasks_hist'
});

当我想对 histTimestamp 进行排序时,它没有正确排序。 我读到我应该在 Ext.Data.Model.fields 中指定一个 dateFormat。这是正确的,我应该如何指定它?

【问题讨论】:

  • 如何加载模型数据?特别是,您的服务器输出什么日期格式?模型字段的dateFormat 选项必须配置为与此匹配。
  • DB中的格式为:'2009-06-18-20.56.02.000000'。但服务器似乎将其转换为以下格式:'Feb 4, 2013 2:11:58 PM'(使用 Firebug GET Regquest 检查)
  • 这确实是您在响应中看到的格式(即 Firebug)。您可以在 the docs 中找到 Ext 日期格式规范。现在,您传递的内容似乎不是机器解析的好格式(应该是“2013-02-04 14:11:58”或“2013-02-04T14:11:58”,如果有时区我认为需要);您可能应该调整您的服务器以输出类似的内容。
  • 使用毫秒还是格式正确的真实日期更好?
  • 我让服务器以毫秒为单位返回时间戳,并在 ExtJs 中使用“时间”作为日期格式。它可以正确解析和格式化,但排序也不起作用。特别是,日期 30-10-2013 ... 仍然在最前面。

标签: java sql sorting extjs timestamp


【解决方案1】:

我发现了问题。我的商店里有一个 groupField。删除此字段解决了这个问题。

【讨论】:

    猜你喜欢
    • 2014-08-26
    • 2012-03-17
    • 2012-01-07
    • 1970-01-01
    • 2013-08-31
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    相关资源
    最近更新 更多