我想有选择地在Sencha中分类商店。
场景:说,我的商店中有5个元素如下
1.广告
2. ab
3. Ac
4. af
5. Ae
因此,当我在列表中显示这些记录时,我希望“Ac”始终保持在第0位(第1条记录),其他4条按如下方式排序:
1. Ac
2. ab
3.广告
4. Ae
5. Af
如下所示对商店进行分类,
分拣机:{
财产:'记录',
方向:'ASC'
},
将按如下方式给出定期排序结果:
1. ab
2. Ac
3.广告
4. Ae
5. Af
感谢有人可以提供帮助。感谢。
答案 0 :(得分:2)
您可以使用sorterFn
代替property
,使用自定义功能进行排序。
在您的示例中,这将产生所需的结果:
{
direction: 'ASC'
,sorterFn: function(left, right) {
var l = left.get('record') || '',
r = right.get('record') || '';
// Special case 'Ac' is always first
if (l === 'Ac') {
if (r === 'Ac') {
return 0;
} else {
return -1;
}
} else if (r === 'Ac') {
return 1;
}
// Defaults to a standard string comparison
else {
return l.localeCompare(r);
}
}
}
答案 1 :(得分:0)
在上面的场景中,我实际上是从客户端添加“Ac”并从服务器获取其他记录。因此,不是使用Sencha分拣机对我的商店进行分类,而是按照以下方式进行
1.将从服务器获取数据的查询修改为“选择xxx,xxx,从记录订购的xxxxx记录”
2.在商店的第0个位置添加“Ac”
store.add(0,{记载: “AC”})
虽然我完全同意,但这是我所问的问题之一,而不是答案。