为啥我的 ExtJS 4.2 网格面板排序不起作用?

Posted

技术标签:

【中文标题】为啥我的 ExtJS 4.2 网格面板排序不起作用?【英文标题】:Why is my ExtJS 4.2 gridpanel sort not working?为什么我的 ExtJS 4.2 网格面板排序不起作用? 【发布时间】:2014-01-10 02:05:31 【问题描述】:

不确定为什么我的排序不适用于此网格面板。

我设置了 sorters 属性,我相信是正确的。

我还设置了 sortOnLoad 属性。

不知道为什么这个简单的案例不起作用。

我认为在这种情况下我不需要进行远程排序,所以只是不确定为什么这不起作用。

Ext.onReady(function() 
    Ext.define('com.myCompany.MyGridModel', 
        extend : 'Ext.data.Model',
        fields : [
            name : 'name',
            type : 'string'
        , 
            name : 'address',
            type : 'string'
        , 
            name : 'type',
            type : 'string'
        ]
    );
    var store = Ext.create('Ext.data.Store', 
        model: 'com.myCompany.MyGridModel',
        proxy: 
            type: 'ajax',
            url: 'centers.json',
            reader: 
                type: 'json',
                root: 'centers'
            ,
            sortOnLoad: true,
            sorters:  property: 'name', direction : 'ASC' 
       
    );
    store.load();
    var grid = Ext.create('Ext.grid.Panel', 
        layout: 'fit',
        store: store,
        columns: [
            text: 'Name',
            dataIndex: 'name',
            name: 'name'
        , 
            text: 'IP Address',
            dataIndex: 'address',
            name: 'address'
        , 
            text: 'Type',
            dataIndex: 'type',
            name: 'type'
        ],
        renderTo: Ext.getBody(),
    );
    grid.getView().refresh();
);


  "centers": [
    
      "name": "South Test Center",
      "address": "30.40.50.60",
      "type": "TestType2"
    ,
    
      "name": "East Test Center",
      "address": "50.60.70.80",
      "type": "TestType1"
    ,
    
      "name": "West Test Center",
      "address": "40.50.60.70",
      "type": "TestType3"
    ,
    
      "name": "North Test Center",
      "address": "20.30.40.50",
      "type": "TestType4"
    
]

【问题讨论】:

已经回答:sencha.com/forum/… 【参考方案1】:

sortOnLoad 和 sorters 配置选项应该直接放在 store 上,而不是放在模型上。

在此处查看 Ext.data.Store 文档:

http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.Store-cfg-sorters http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.data.Store-cfg-sortOnLoad

【讨论】:

以上是关于为啥我的 ExtJS 4.2 网格面板排序不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

在 extjs 4.2 中将数据从商店设置到具有网格的表单面板

Extjs Grid滚动在应用程序运行后不起作用

用于网格面板的 extjs 3.2 水平滚动条

Ext JS 4.1:网格列中的渲染器参数不起作用

ExtJS 4.2 将网格数据导出到可下载的 CSV 文件

Extjs 4.2 可排序网格,一条记录的位置固定