在sencha中有选择地排序商店

时间:2013-06-06 09:54:03

标签: extjs sencha-touch sencha-touch-2 sencha-touch-2.1

我想有选择地在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

感谢有人可以提供帮助。感谢。

2 个答案:

答案 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”})

虽然我完全同意,但这是我所问的问题之一,而不是答案。