ExtJS 4 - 自定义排序功能仅在单击列后执行 header
ExtJS 4 - Custom sort function executes only after clicking on columns header
我认为标题说明了一切。我有一个网格,我有一个商店,我选择了一个字段进行排序。我已经覆盖了 Ext.util.Sorter
s defaultSorterFn 函数。当网格首先加载时,它会排序,但函数不会执行。
当我单击 header 列时,该函数正在执行,并且按照我希望的方式进行排序。我想也许商店里有东西,但我不确定。
因为该应用程序非常大,所以我只复制商店,但如果需要,我也可以复制代码的其他部分。
Ext.define('MyApp.store.GetEmployees', {
extend: 'Ext.data.Store',
requires: [
'Ext.data.proxy.Ajax',
'Ext.data.reader.Json',
'Ext.data.Field',
'Ext.util.Sorter'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
storeId: 'GetEmployees',
proxy: {
type: 'ajax',
url: 'Handlers/GridHandler.ashx?event=GetEmployees',
reader: {
type: 'json',
root: 'data'
}
},
fields: [
{
name: 'StaffId',
type: 'int'
},
{
name: 'EmployeeName'
}
],
sorters: {
property: 'EmployeeName'
}
}, cfg)]);
}
});
有什么想法吗?
好的,因为没有答案我写下我是如何解决它的。我尝试了所有方法,但唯一可行的方法是在商店加载事件结束时我对商店进行了排序,现在它可以工作了。也许这不是最好的解决方案,但它确实有效。
我认为标题说明了一切。我有一个网格,我有一个商店,我选择了一个字段进行排序。我已经覆盖了 Ext.util.Sorter
s defaultSorterFn 函数。当网格首先加载时,它会排序,但函数不会执行。
当我单击 header 列时,该函数正在执行,并且按照我希望的方式进行排序。我想也许商店里有东西,但我不确定。
因为该应用程序非常大,所以我只复制商店,但如果需要,我也可以复制代码的其他部分。
Ext.define('MyApp.store.GetEmployees', {
extend: 'Ext.data.Store',
requires: [
'Ext.data.proxy.Ajax',
'Ext.data.reader.Json',
'Ext.data.Field',
'Ext.util.Sorter'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
autoLoad: false,
storeId: 'GetEmployees',
proxy: {
type: 'ajax',
url: 'Handlers/GridHandler.ashx?event=GetEmployees',
reader: {
type: 'json',
root: 'data'
}
},
fields: [
{
name: 'StaffId',
type: 'int'
},
{
name: 'EmployeeName'
}
],
sorters: {
property: 'EmployeeName'
}
}, cfg)]);
}
});
有什么想法吗?
好的,因为没有答案我写下我是如何解决它的。我尝试了所有方法,但唯一可行的方法是在商店加载事件结束时我对商店进行了排序,现在它可以工作了。也许这不是最好的解决方案,但它确实有效。