2013-11-27 1 views
3

добавить новые строки (записи) в к сетке, когда load хранилище событий как нижеКак добавить буксировочный строк сетки последний

var dt = new Date(); 
var rec = new store.recordType({ }, "new" + dt.format('U')); 
rec.set('ID', '1'); 
store.insert(store.getCount(), rec); 
store.insert(store.getCount()+1, rec); 
grid.getView().refresh(); 

, но я не могу добавить 2 пустые строки в последних к сетке. как я могу добавить 2 пустой строки в сетку.

Примечание: без этой строки добавьте только одну строку в сетку store.insert(store.getCount()+1, rec);, но когда я добавлю store.insert(store.getCount()+1, rec); в свой код, который дал мне ошибку.

ответ

1

Первый некоторый комментарий относительно кода пропущено:

Вы создаете новую запись со значением ID "new" + dt.format('U') и в следующей строке вы устанавливаете этот идентификатор 1? Вы должны создать запись с соответствующим (и уникальным) идентификатором. В противном случае вы можете переопределить существующую запись.

Теперь ваша проблема:

Вы добавляете запись с таким же идентификатором дважды. Так что для магазина есть только одна запись. Либо не присваивайте значение идентификатора вообще, и пусть ExtJS позаботится об этом или гарантирует, что каждый экземпляр получит свой собственный уникальный идентификатор. И каждый раз создавайте новый экземпляр!

Вам нужно сделать что-то вроде этого:

var rec1 = new store.recordType({}, 1); // remove the 1 with your own unique ID value 
var rec2 = new store.recordType({}, 2); // remove the 2 with your own unique ID value 

store.insert(store.getCount()-1, [rec1,rec2]); 
+1

В обеих строках должно быть 'store.getCount() - 1'. Также записи могут быть сразу вставлены вызовом: 'store.insert (store.getCount() - 1, [rec1, rec2])'. – Thevs

+0

@Thevs Спасибо за это. – sra

+0

store.insert (store.getCount() - 1, [rec1, rec2]); Этот код не будет добавляться последним, если сортировка сетки –

0

Я сделал что-то подобное для комбо (но не с пустыми значениями) и работал просто отлично ... надеюсь, что это работает для вас .. .

Учитывая модель с этим 2 свойства FullName Возраст

При загрузке магазина ...

someStore.load({ 

callback:function(){ 

someStore.add(

    {FullName: '', Age:''}, {FullName: '', Age:''} 

) 

} 

}); 

Обратите внимание, что если этот магазин отсортирован, новые экземпляры модели будут вставлены в правильной точке Хранилища для сохранения порядка сортировки.

Доступно с: 1.1.0

http://docs.sencha.com/extjs/4.1.3/#!/api/Ext.data.Store-method-add

С наилучшими пожеланиями.

Смежные вопросы