ExtJS.grid.CRUD - PullRequest
       10

ExtJS.grid.CRUD

2 голосов
/ 10 сентября 2010

Я изучаю ExtJS.Я пытаюсь сделать стол с CRUD.Это пример моего кода.

Ext.onReady(function(){

       var writer = new Ext.data.JsonWriter({
           encode: true,
           writeAllFields: false
       });

       var proxy = new Ext.data.HttpProxy({
        api: {
            read : 'read',
            create : 'сreate',
            update: 'update',
            destroy: 'delete'
        }
    });

var reader = new Ext.data.JsonReader({
root:'list',
id:'id',
totalProperty: 'totalCount'},
  [
    'id',
    'name',
    'description'
])

    var store = new Ext.data.Store({
           id:'id',
           proxy: proxy,
           reader: reader,
           writer: writer,  
           autoSave: true 
       });

store.load();

var title_edit = new Ext.form.TextField();

    var grid = new Ext.grid.EditorGridPanel({
        store: store,
                renderTo: document.body,
        clickstoEdit: 1,
        columns: [
            {id:'id',header: 'ID', width: 30, dataIndex: 'id',editor: title_edit},
            {header: 'Name', width: 80, dataIndex: 'name',editor: title_edit},
            {header: 'Description', width: 180, dataIndex: 'description',editor: title_edit}
                        ],
           height: 320,
        width: 400,
        title: 'Table',
        loadMask: true,
        bbar: new Ext.PagingToolbar({
            pageSize: 10,
            store: store,
            displayInfo: true,
            displayMsg: 'Displaying movies {0} - {1} of {2}',
            emptyMsg: "No movies found"
        }),
        tbar:
        [
                 {
         text: 'Add',
         handler: function(btn, ev) {
        var u = new store.recordType({
             name: '',
            description : ''
        });

        grid.stopEditing();
        store.insert(0, u);
        grid.startEditing(0, 1);
    }

    }       ]
        });
});

Он не содержит ошибок - так говорит FireBug.При нажатии на кнопку «Добавить» происходит следующее: запрос на сервер отправляется с пустыми значениями, добавляется новая строка в таблицу в режиме редактирования.

Но это не так ...

Я смотрел пример в документации:

http://dev.sencha.com/deploy/dev/examples/writer/writer.html

В этом примере отправка запроса на сервер является последним этапом, сначала добавьте новую строку в таблицу,потом я его редактирую, и только потом - запрос к серверу.

Как мне сделать то же самое в моем коде?пожалуйста, помогите.

1 Ответ

1 голос
/ 11 сентября 2010

Просмотрите свойство autoCommit базового хранилища.IIRC, если autoCommit имеет значение false, хранилище не будет взаимодействовать с сервером, пока вы явно не скажете ему commit ().

...