ExtJS 4.2.3:根据当前选择的记录从存储中获取下一条和上一条记录
ExtJS 4.2.3: Get the next and previous record from a store, based on which record is currently selected
我有一个包含一些记录的商店。我想要两个按钮,一个用于上一条记录(除非是第一条记录),一个用于下一条记录(除非是最后一条记录)。
我希望 .next()
和 .prev()
能够正常工作,因为它们是 AbstractElement
的一部分,但他们没有。我基本上只需要 select 根据我当前所在的记录来查看下一条或上一条记录。
这是我目前的代码(仅用于提高优先级,另一个非常相似):
控制器
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
...
}
},
...
如您所见,我已经控制了 "is first" 部分。只需要一种方法来获取以前的记录。如果有人有任何想法,将不胜感激。
IIRC Sencha 本身使用以下代码获取 next/previous 记录:
idx = store.indexOf(record),
nextRecord = store.getAt(idx+1),
prevRecord = store.getAt(idx-1)
我有一个包含一些记录的商店。我想要两个按钮,一个用于上一条记录(除非是第一条记录),一个用于下一条记录(除非是最后一条记录)。
我希望 .next()
和 .prev()
能够正常工作,因为它们是 AbstractElement
的一部分,但他们没有。我基本上只需要 select 根据我当前所在的记录来查看下一条或上一条记录。
这是我目前的代码(仅用于提高优先级,另一个非常相似):
控制器
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
...
}
},
...
如您所见,我已经控制了 "is first" 部分。只需要一种方法来获取以前的记录。如果有人有任何想法,将不胜感激。
IIRC Sencha 本身使用以下代码获取 next/previous 记录:
idx = store.indexOf(record),
nextRecord = store.getAt(idx+1),
prevRecord = store.getAt(idx-1)