Сохранение записи в сетке после вставки в Ext-js - PullRequest
3 голосов
/ 23 октября 2011

У меня есть сетка с хранилищем, и я добавляю запись в хранилище, и данные, добавляемые в хранилище, отражаются на сетке. Но после обновления она исчезает.

вот мой код для вставки записи

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'],
...

Ответы [ 2 ]

1 голос
/ 24 октября 2011

Согласно вашим комментариям в первоначальном вопросе, вы определили свой магазин следующим образом:

    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-файл, который будет выполнять загрузку магазина.

Прочитайте это и это для получения дополнительной информации.

1 голос
/ 24 октября 2011

Вам также необходимо завершить редактирование, в противном случае магазин не сможет внести изменения. используйте firebug, чтобы проверить, что ваш магазин сохраняет. Вы также можете использовать автосохранение: ИСТИНА, чтобы сэкономить коммит

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...