Extjs 4.2 store.getRange提供以前加载的商店的数据

时间:2014-06-15 09:27:19

标签: extjs

我有一个与网格类关联的extjs商店。当我选择一个类时,它给出了记录的ClassID。

var ClassData = record.get('ClassID');
console.log(ClassData);

基于此ClassID,我正在加载下一个网格的存储:

var Grid = this.getSemGrid();
var Store = Grid.getStore();     // your grid's store    

//load store with records having selected class ID
var g = Store.load( {params : {ClassID: ClassData }});

直到这里一切都很好。

加载商店后,我将收到所有已加载的记录( 错误区

var selected = g.getRange();  // getRange = select all records

然后推送数组中所有记录的一个字段的所有值

var Excerpt = []; // start with empty array
Ext.each(selected, function(item) {
    // add the fields that you want to include
    var Obj = {
        third_field: item.get('ExamName')
    };
    Excerpt.push(Obj); // push this to the array
}, this);
console.log(Excerpt);

摘录提供以前选择的记录数组,而不是当前记录。

我也试过

Store.loadData([],false); 

在再次加载之前清除所有已加载的商店数据。

1 个答案:

答案 0 :(得分:0)

有这个工作

var g = Store.load({ 
  params : {ClassID: ClassData }, 
  callback : function(records, operation, success){ 
    var Excerpt = []; // start with empty array 
    Ext.each(records, function(item) { 
      // add the fields that you want to include 
      var Obj = { 
        third_field: item.get('ExamName') 
      }; 
    Excerpt.push(Obj); // push this to the array 
    }, this); 
  } 
});