2013-12-03 6 views
0

Я использую ExtJS API для операций CRUD в сетке. Весь мой код работает отлично, за исключением одной маленькой вещи. Когда я добавляю запись в первый раз (когда страница загружается), новая запись не отображается в сетке, но она добавляется в базу данных. Когда я обновляю страницу и вставляю запись, она отображается сразу же после ее добавления. Это очень странное поведение, и я даже не знаю, что здесь происходит. Вот код, который я использую, чтобы вставить запись:Сетка ExtJs не обновляется после добавления новой записи

insertUser: function (button) { 
     var grid = Ext.ComponentQuery.query('#userlist'); 
     var win = button.up('window'); 
     form = win.down('form'); 
     record = form.getRecord(); 
     values = form.getValues(); 
     this.getUsersStore().add(values); 
     this.getUsersStore().reload();//tried this.getUsersStore().load(); also  
     win.close(); 
    } 

Может ли кто-нибудь указать, что здесь происходит? Благодарю.

+0

попробуйте 'grid.getView(). Refresh();'? – wens

+0

Спасибо 99 красных шаров. Я просто удалил строку record = form.getRecord(); и все отлично работало :) – user1640256

ответ

0

При добавлении данных для его хранения необходимо иметь формат записи в хранилище.

Например

this.getUsersStore().add({username:'Sample User', userid: 210, userphone: '999-999-9000'}); 

В вашем коде, кажется, что вы непосредственно передавая значения.

Если вы правильно добавили запись, вам не нужно перезагружать() или обновлять, если вы перезагрузите(), хранилище обновится, а данные, которые вы добавили, не будут присутствовать.

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