Показать сообщение отдельно
  #6 (permalink)  
Старый 16.06.2015, 13:06
Профессор
Отправить личное сообщение для novikov Посмотреть профиль Найти все сообщения от novikov
 
Регистрация: 19.11.2012
Сообщений: 178

Сохранение записи record.save() не связано с обновлением хранилища, подложенного под грид, несмотря на то, что эта запись относится к этому хранилищу.

Думаю, чтобы синхронизация затронула хранилище грида, нужно вначале получить его через record.store, а затем выполнить sync().

Либо попробовать record.commit(false).

Из моего арсенала:

onNewSubmitted: function(record) {
        
        record.save({
            success: function() {
                var view = this.getView();
                var companyGrid = view.down('companyGrid');

                var store = Ext.StoreManager.lookup('companyStore');
                store.add(record);

                companyGrid.getSelectionModel().select(record);

            },
            scope: this
        });

    },

    onNewCanseled: function() {
        
        var view = this.getView();
        var cardContainer = view.down('#cardContainer');
        var companyNew = view.down('companyNew');
        
        var record = companyNew.getRecord();
        record.erase();
        companyNew.reset(true);
        
        cardContainer.hide();
        
    },

    onDeleteRequested: function(record) {
        
        var view = this.getView();
        var cardContainer = view.down('#cardContainer');
        var companyForm = view.down('companyForm');
        var companyDisplay = view.down('companyDisplay');
        
        if (record.phantom) {
            cardContainer.hide();
            companyForm.reset(true);
            companyDisplay.reset(true);
            return;
        }

        Ext.Msg.show({
            title:'Удаление',
            message: 'Действительно удалить запись?',
            buttons: Ext.Msg.YESNO,
            buttonText: {
                yes: 'Да',
                no: 'Нет'
            },
            icon: Ext.Msg.QUESTION,
            fn: function(btn) {
                if (btn === 'yes') {
                    //var store = Ext.StoreManager.lookup('companyStore');
                    record.erase();
                }
            }
        });
        
    },

Последний раз редактировалось novikov, 16.06.2015 в 13:09.
Ответить с цитированием