2015-12-18 84 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

相關問題