Javascript ExtJS 4 remoteSort asDate
对于我的远程排序,我在ExtJS 3中使用关键字asDate,它是在请求的方向部分发送的:Javascript ExtJS 4 remoteSort asDate,javascript,extjs,extjs4,extjs4.1,Javascript,Extjs,Extjs4,Extjs4.1,对于我的远程排序,我在ExtJS 3中使用关键字asDate,它是在请求的方向部分发送的: sort:my_date dir:asDate ASC 在ExtJS 4中,我错过了请求中的sortType信息: sort:[{"property":"my_date","direction":"DESC"}] 有什么方法可以在服务器端获取sortType信息吗?您可以使用override Encoder Sorters功能。我给你举个例子:) var store=Ext.create('Ext.
sort:my_date
dir:asDate ASC
在ExtJS 4中,我错过了请求中的sortType信息:
sort:[{"property":"my_date","direction":"DESC"}]
有什么方法可以在服务器端获取sortType信息吗?您可以使用override Encoder Sorters功能。我给你举个例子:)
var store=Ext.create('Ext.data.store'{
模型:“用户”,
分拣机:[{
财产:'年龄',
方向:“DESC”,
sortType:'asDate'
}, {
属性:“firstName”,
方向:“ASC”
}],
代理:{
键入:“ajax”,
url:“/echo/json/”,
读者:{
键入:“json”,
root:'用户'
},
编码器分拣机:功能(分拣机){
var min=[],
长度=分拣机。长度,
i=0;
对于(;i
大多数情况下,您已经知道要排序的类型。排序主要在数据库端完成。(它是专为它而设计的,而且是最好的)在数据库中,您可以在“my_date”列上进行排序。如果您适当地保存日期,数据库就会知道这是一个日期。当您不在数据库中排序,而是在后端排序时,情况也是如此。存储区中的数据映射到后端对象。如果“my_date”保存在适当的数据类型中,则很容易进行适当的排序。是的,当然,但我的情况并非如此。我需要知道定义了哪个sortType,如果它是asDate,我的后端会将它转换为ORDER BY Stru to_DATE(…)结论:您的日期存储为字符串,而不是日期,但您希望像处理日期一样处理字符串…正确,因为我们的数据库结构是半关系型和半文档型的,稍微更改为使用字段中定义的sortType,但现在可以使用了。
var store = Ext.create('Ext.data.Store', {
model: 'User',
sorters: [{
property: 'age',
direction: 'DESC',
sortType: 'asDate'
}, {
property: 'firstName',
direction: 'ASC'
}],
proxy: {
type: 'ajax',
url: '/echo/json/',
reader: {
type: 'json',
root: 'users'
},
encodeSorters: function (sorters) {
var min = [],
length = sorters.length,
i = 0;
for (; i < length; i++) {
min[i] = {
property: sorters[i].property,
direction: sorters[i].direction,
sortType: sorters[i].sortType
};
}
return this.applyEncoding(min);
}
}
});