Нужно добавить несколько записей в сетке, когда я нажимаю кнопку добавления?

0

Когда я нажимаю кнопку, я должен добавить несколько записей в сетку. Но он добавляет только одну запись за раз. То есть, он добавляет одну запись; после этого он может только добавить запись.

Обратите внимание, что на основе переключателя изменений происходит изменение.

Может ли кто-нибудь исправить код, если это не так?

tbar: [
                {
                    text: 'Add',
                    tooltip: 'Add Focus Market',
                    iconCls: 'icon-shift-add',
                    scope: me,
                    handler: function() {
                            addFocusMarket.call(this);
                    }
                }
            ],

plugins: [ this.mcmRowEditing ],
            viewConfig: {},
            listeners: {
                scope: me,
                validateedit: function(editor, e) {
                    var searchval = Ext.getCmp('searchGroup').getValue();
                    if(searchval.search_type == "CityPair" ) {
                        console.log("city pair update..");
                        if(e.newValues.Origin !== e.originalValues.Origin ||
                            e.newValues.Destination !== e.originalValues.Destination ||
                            e.newValues.CabinClass !== e.originalValues.CabinClass ||
                            e.newValues.StartAvailability.getDate() !== e.originalValues.StartAvailability.getDate() ||
                            e.newValues.EndAvailability.getDate() !== e.originalValues.EndAvailability.getDate()) {


                            if(!e.newValues.Origin) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please set the Origin', 
                                time: 2000
                            });
                            return false; }

                            if(!e.newValues.Destination) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please set the Destination', 
                                time: 2000
                            });
                            return false; }

                            if(!e.newValues.CabinClass) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please enter a valid CabinClass', 
                                time: 2000
                            });
                            return false; }
                            e.newValues.Origin = e.newValues.Origin.toUpperCase();
                            e.newValues.Destination = e.newValues.Destination.toUpperCase();
                            e.record.set('Origin', e.newValues.Origin);
                            e.record.set('Destination', e.newValues.Destination);
                            e.record.set('CabinClass', e.newValues.CabinClass);
                            e.record.set('StartAvailability', e.newValues.StartAvailability);
                            e.record.set('EndAvailability', e.newValues.EndAvailability);

                            App.mcmAddCityPair({
                                focusmarketRecord: e.record, 
                                successCallback: function(obj) {
                                    e.record.data = obj;
                                    App.mcmFindCityPair(this.mcmSearchType, obj.Origin, obj.Destination, 
                                        obj.StartAvailability, obj.EndAvailability);
                                    this.mcmHasChanges = true;
                                }, 
                                successScope: this,
                                failureCallback: App.mcmTabReload,
                                failureScope: App
                            });
                      }
                    }

                    else if(searchval.search_type == "IndividualFlights") {
                        console.log("flight number update..");
                        if(e.newValues.Origin !== e.originalValues.Origin ||
                            e.newValues.Destination !== e.originalValues.Destination ||
                            e.newValues.CabinClass !== e.originalValues.CabinClass ||
                            e.newValues.FlightNumber !== e.originalValues.FlightNumber ||
                            e.newValues.StartAvailability.getDate() !== e.originalValues.StartAvailability.getDate() ||
                            e.newValues.EndAvailability.getDate() !== e.originalValues.EndAvailability.getDate()) {

                            if(!e.newValues.FlightNumber) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please enter a valid FlightNumber', 
                                time: 2000
                            });
                            return false; }


                            if(!e.newValues.Origin) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please set the Origin', 
                                time: 2000
                            });
                            return false; }

                            if(!e.newValues.Destination) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please set the Destination', 
                                time: 2000
                            });
                            return false; }

                            if(!e.newValues.CabinClass) {
                                App.mcmShowMessageBox({
                                title: 'Important', 
                                message: 'Please enter a valid CabinClass', 
                                time: 2000
                            });
                            return false; }

                            e.newValues.Origin = e.newValues.Origin.toUpperCase();
                            e.newValues.Destination = e.newValues.Destination.toUpperCase();
                            e.record.set('Origin', e.newValues.Origin);
                            e.record.set('Destination', e.newValues.Destination);
                            e.record.set('CabinClass', e.newValues.CabinClass);
                            e.record.set('FlightNumber', e.newValues.FlightNumber);
                            e.record.set('StartAvailability', e.newValues.StartAvailability);
                            e.record.set('EndAvailability', e.newValues.EndAvailability);

                            App.mcmAddIndividaulFlight({
                                focusmarketRecord: e.record, 
                                successCallback: function(obj) {
                                    e.record.data = obj;
                                    App.mcmFindIndividualFlights(this.mcmSearchType, obj.Origin, obj.Destination, 
                                            obj.StartAvailability, obj.EndAvailability, obj.FlightNumber);
                                    this.mcmHasChanges = true;
                                }, 
                                successScope: this,
                                failureCallback: App.mcmTabReload,
                                failureScope: App
                            });
                        }

                    }

                }
            }




    var addFocusMarket = function(focusmarket) {
            this.mcmRowEditing.cancelEdit();
            var searchval = Ext.getCmp('searchGroup').getValue();
            console.log("add focus market" + focusmarket);
            if(searchval.search_type == "CityPair"){
                var record = new Sch.model.Resource({
                Id: 0, 
                Origin: focusmarket ? focusmarket.Origin : '',
                Destination: focusmarket ? focusmarket.Destination: '',
                CabinClass: focusmarket ? focusmarket.CabinClass: '',
                StartAvailability: focusmarket ? focusmarket.startAvailability: '', 
                EndAvailability: focusmarket ? focusmarket.endAvailability: ''
                });
                console.log("records-->"+record);
            }
            else if(searchval.search_type == "IndividualFlights"){
                var record = new Sch.model.Resource({
                Id: 0, 
                Origin: focusmarket ? focusmarket.Origin : '',
                Destination: focusmarket ? focusmarket.Destination: '',
                FlightNumber: focusmarket ? focusmarket.FlightNumber: '',
                CabinClass: focusmarket ? focusmarket.CabinClass: '',
                StartAvailability: focusmarket ? focusmarket.startAvailability: '', 
                EndAvailability: focusmarket ? focusmarket.endAvailability: ''
                });
                console.log("records-->"+record);
            }
            App.mcmFocusMarketStore.insert(0, record);
            this.mcmRowEditing.startEdit(0, 0);
            this.mcmHasChanges = true;
        };
  • 1
    Это огромный кусок кода. Можно ли как-нибудь собрать простой рабочий пример этого кода на fiddle.sencha.com ? Это будет иметь большое значение для помощи другим в отладке вашего кода.
  • 0
    @existdissolve моя проблема в том, что я могу добавить новую строку после обновления одну строку после этого, только я могу вставить другую строку. Мне нужно добавлять каждый щелчок кнопки добавления .. Как пример редактирования строки sencha
Показать ещё 2 комментария
Теги:
extjs4

1 ответ

0

при создании идентификатора попробуйте использовать уникальный идентификатор. Если вы вводите 0 для идентификатора каждый раз, когда вы создаете запись, вы увидите только одну запись в сетке. Вам нужно генерировать уникальный идентификатор каждый раз, когда вы можете использовать Ext.id() или написать свой собственный.

var record = new Sch.model.Resource({ //ПРАВИЛЬНО, ЗДЕСЬ ЭТО НЕОБХОДИМО УНИКАЛЬНО //Id: 0, Происхождение: focusmarket? focusmarket.Origin: '', Назначение: focusmarket? focusmarket.Destination: '', CabinClass: focusmarket? focusmarket.CabinClass: '', StartAvailability: focusmarket? focusmarket.startAvailability: '', EndAvailability: focusmarket? focusmarket.endAvailability: ''});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню