为啥我的 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 网格面板排序不起作用?的主要内容,如果未能解决你的问题,请参考以下文章