我尝试在商店中插入新记录,以避免Ext.data.Store.load();
从定义的代理中再次加载所有数据。
是否可以在不定义列和数据类型的情况下插入新的Ext.data.Record
?
我想要这样的事情:
var myStore = this.grid.getStore();
myStore.insert({
firstColumn: 'myValueForTheFirstColumn',
secondColumn: 'myValueForTheSecondColumn'
});
非常感谢提前!
答案 0 :(得分:0)
手动更新商店的记录后,您还可以尝试触发store.reconfigure()方法以强制网格重新呈现。
答案 1 :(得分:0)
谢谢Lolo,
这解决了我的问题; - )
以下是我解决问题的代码:
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! ;-)