#extjs
#extjs
Вопрос:
У меня есть сетка с хранилищем, и я добавляю запись в хранилище, и данные, добавляемые в хранилище, отражаются в сетке. но после обновления они исчезают.
вот мой код для вставки записи
handler: function() {
grid.getStore().insert(
0,
new ds_model({
id:0,
name:'',
dob:''
})
);
grid.startEditing(0,0);
grid.store.commitChanges();
}
})
Редактировать:
var store = new Ext.data.Store({
data: [
[ 11849,'ABC','29/03/90'],
[ 11456,'CDE','17/03/90'],
[ 11344,'EFG','17/07/90'],
[ 11343,'IJK','Trainee','02/06/90'],
...
Комментарии:
1. вы назначили «URL» своему хранилищу, который будет использоваться для сохранения ваших изменений? Можете ли вы показать, как вы определили свой магазин? 🙂
2. ok.var store = новые внешние данные. Сохранить({ данные: [ [ 11849,’ABC’,’29/03/90′], [ 11456,’ CDE’,’17/03/90′], [ 11344,’ EFG’,’17/07/90′], [ 11343,’ IJK», «Стажер», «02/06/90»],
Ответ №1:
Вам также необходимо завершить редактирование, иначе хранилище не сможет зафиксировать изменения. используйте firebug, чтобы проверить, сохраняется ли ваше хранилище. Вы также можете использовать автосохранение: TRUE, чтобы сэкономить фиксацию
Комментарии:
1. ОК. Итак, перед внесением каких-либо изменений я должен остановить редактирование??
Ответ №2:
Согласно вашим комментариям в первоначальном вопросе, вы определили свое хранилище следующим образом:
new Ext.data.Store({
data: [
[ 11849,'ABC','29/03/90'],
[ 11456,'CDE','17/03/90'],
[ 11344,'EFG','17/07/90'],
[ 11343,'IJK','Trainee','02/06/90']
]
});
Это не приведет к автоматическому сохранению на любом внутреннем сервере. Кроме того, вы жестко кодируете данные в хранилище, что означает, что при перезагрузке вы буквально каждый раз помещаете эти данные в хранилище. Чтобы упростить сохранение и загрузку в / из серверной части, вам просто нужно изменить ее как таковую:
new Ext.data.Store({
autoSync: true, // this will tell Ext to persist your changes
// to the backend when you change an entry in the store
autoLoad: true, // this will tell Ext to load the store with data from
// the backend
url: // put your url to save
});
Также обратите внимание, что вам понадобится URL, который будет ожидать вызова от этого. Скорее всего, это будет php-файл. В зависимости от того, что вы вставляете в сетку, вам понадобится что-то вроде этого в файле php:
myFile.php
==========
<?php
$id = $_POST['id']; // get id from client
$name = $_POST['name']; // get name from client
$dob = $_POST['dob']; // get date of birth from client
// do any saving of this data, e.g, to your database here
?>
Кроме того, вам понадобится php-файл, который будет выполнять загрузку хранилища.
Прочитайте это и это для получения дополнительных разъяснений.