Как лениво вставить в ExtJS 3 Store? - PullRequest
0 голосов
/ 12 января 2012

Я пытаюсь вставить новую запись в хранилище, чтобы избежать Ext.data.Store.load();, который снова загрузит все данные с определенного прокси.

Можно ли вставить новую Ext.data.Record без определения столбцов и типов данных?

Я хочу что-то вроде этого:

var myStore = this.grid.getStore();

myStore.insert({
  firstColumn: 'myValueForTheFirstColumn',
  secondColumn: 'myValueForTheSecondColumn'
});

Большое спасибо заранее!

Ответы [ 2 ]

0 голосов
/ 13 января 2012

Спасибо, Лоло,

это исправило мою проблему; -)

Вот код, как я решил проблему:

var cm = this.grid.getColumnModel(); // getting the column model
var cc = cm.getColumnCount(); // getting number of counts (before add)
var lastStoreRecordIndex = this.grid.getStore().getCount() - 1; // getting the 
                                                                // last record
                                                                // (before add)
// the approximated ID which could be in the database
// (this is too optimistic in critical applications)
var approxId = this.grid.getStore().getAt(lastStoreRecordIndex).get('id') + 1;

// building a new record based on the columns of the current column model
var ch = '', data = new Object();
for (var i = 0; i < cc; ++i) {
  ch = cm.getColumnHeader(i);

  data[ch] = '';
}

this.grid.getStore().add([new Ext.data.Record(data)]); // add and be happy! ;-)
0 голосов
/ 12 января 2012

После того, как вы обновите записи своего магазина вручную, вы также можете попробовать запустить метод store.reconfigure (), чтобы заставить вашу сетку перерисовываться.

...