javascript - 单击 ExtJS 中的标题对网格中的日期列进行排序

标签 javascript sorting extjs

在我的页面中,网格内有一列。单击标题时,日期未按我的预期排序。我的设置如下:

{ 
    id: 'dateOfBirth',
    header: 'DOB', 
    flex: 1,
    sortable: true, 
    dataIndex: 'dateOfBirth',
    filterable: true,
    filter: {
        type: 'date', 
        dateFormat : 'd-M-Y'
    }
} 

我的数据按“升序”排列导致行显示:

01-jan-1990
01-feb-1990
12-jan-1990  <-- wrong
02-mar-1990

...而我期望看到:

01-jan-1990
12-jan-1990 
01-feb-1990
02-mar-1990

有人能指出我正确的方向吗?

最佳答案

从你的问题中很难看出,但看起来你正在混合来自不同组件的属性 - 我假设你的配置对象用于网格,但 dateFormat 属性属于模型过滤器 可能存在于商店,尽管我认为您误解了它们的用途。

首先确保您的日期建模正确,例如:

Ext.define('MyModel', {
    extend: 'Ext.data.Model',
    fields: [
        { name: 'dateOfBirth', type: 'date', dateFormat: 'd-M-Y' }
    ]
});

其次,确保您在网格配置中使用 datecolumn 类型:

Ext.create('Ext.grid.Panel', {
    // ...
    store: Ext.create('Ext.data.Store', {
        model: 'MyModel',
        data: [
            // ...
        ],
    }),
    columns: [{
        header: 'DOB', 
        flex: 1,
        sortable: true, 
        dataIndex: 'dateOfBirth',
        xtype: 'datecolumn',
        format: 'd-M-Y'
    }]
});

» fiddle

关于javascript - 单击 ExtJS 中的标题对网格中的日期列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24889851/

相关文章:

javascript - 提示输入 5 个单词,然后显示最长的单词 javascript

javascript - 如何在 Ext js 6 中全局覆盖 startParam 和 limitParam 名称

javascript - 第二个 Wordpress Ajax 未触发

Javascript:替换当前网址中的字符串?

php - Javascript 和 PHP 正则表达式验证

javascript - 排序功能删除了 jQuery 单击操作

c++ - 排序器名称在单独的 .cpp 文件中冲突

python - 在python中用 Pandas 排序系列

javascript - EXT 拖放事件发生冲突 - 即。如何同时使用ondragout和notifyout?

javascript - 如何将 sencha 按钮添加到 sencha 列表