2015-12-18 14 views
0

我有一个包含几条记录的商店。我想要两个按钮,一个用于上一个记录(除非是第一个记录),另一个用于下一个记录(除非最后一个记录)。ExtJS 4.2.3:根据当前选择的记录,从商店获取下一个和上一个记录

我希望.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

IIRC煎茶本身用下面的代码来获得一个/上一个纪录:

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

就像一个魅力。谢谢! – rnngau

相关问题