ExtJS 4.2.3:根据当前选择的记录从商店获取下一条和上一条记录

时间:2015-12-18 10:09:45

标签: extjs model store extjs4.2

我有一个包含几条记录的商店。我想要两个按钮,一个用于一个记录(除非是第一个记录),另一个用于记录一个记录(除非是最后一个记录)。

我希望.next().prev()能够工作,因为他们是AbstractElement的一部分,但他们没有。我基本上只需要根据我当前的记录选择下一个或以前的记录。

这是我到目前为止的代码(仅用于提升优先级,另一个代码非常相似):

控制器

stores: [
    'Ratings'
],
...
refs: [
    {
        ref: 'RatingCombo',
        selector: '#comboRating'
    }
],
...
onPriorityUpClick: function(button, e, eOpts) {
    var me = this,
        current_rating = me.getRatingCombo(),
        s = me.getRatingsStore(),
        r = s.findRecord('id', current_rating.getValue()),
        first_r = s.first();

    // If top rating, do nothing
    if(r !== first_r) {
        var prev_r = r.prev();
        // Set new rating
        ...
    }
},
...

正如你所看到的,我已经控制了“第一”部分。只需要一种方法来获得以前的记录。如果有人有任何想法,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

IIRC Sencha本身使用以下代码获取下一个/上一个记录:

idx = store.indexOf(record),
nextRecord = store.getAt(idx+1),
prevRecord = store.getAt(idx-1)