Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ExtJS 4.2.3:根据当前选择的记录,从存储中获取下一条和上一条记录_Extjs_Model_Store_Extjs4.2 - Fatal编程技术网

ExtJS 4.2.3:根据当前选择的记录,从存储中获取下一条和上一条记录

ExtJS 4.2.3:根据当前选择的记录,从存储中获取下一条和上一条记录,extjs,model,store,extjs4.2,Extjs,Model,Store,Extjs4.2,我有一家商店,里面有几张唱片。我想要两个按钮,一个用于上一条记录(除非第一条记录),一个用于下一条记录(除非最后一条记录) 我希望.next()和.prev()能够工作,因为它们是抽象元素的一部分,但它们没有。我基本上只需要根据我当前使用的记录选择下一个或上一个记录 这是我到目前为止的代码(仅用于提高优先级,另一个非常类似): 控制器 stores: [ 'Ratings' ], ... refs: [ { ref: 'RatingCombo',

我有一家商店,里面有几张唱片。我想要两个按钮,一个用于上一条记录(除非第一条记录),一个用于下一条记录(除非最后一条记录)

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

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

控制器

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
        ...
    }
},
...

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

IIRC Sencha自己使用以下代码获得下一条/上一条记录:

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

工作起来很有魅力。谢谢