Нужно выровнять флажок, добавить несколько записей и просмотреть файл с датами при редактировании в extjs4?

0
  1. Мне нужно добавить одну или несколько записей за раз в сетке. После нажатия кнопки "Добавить" я могу добавить одну запись за раз. но мне нужно добавить несколько записей за раз. Я попытался использовать clickToEdit, clicksToMoveEditor, но не работал.

  2. Мне нужно установить флажок в центре, редактируя сетку.

  3. Главное, пока я могу редактировать в сетке, я могу иметь возможность использовать только поля, кроме столбца startdate и end date. он не отображается из базы данных.

Может ли кто-нибудь помочь мне, если есть неправильные параметры конфигурации для сетки.

this.mcmRowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToEdit: 1,
            autoCancel: true,
            listeners: {
                scope: this,
                canceledit: function(editor, event) {
                    if(!editor.record.get('FocusMarketId')) { //if it was a brand new record
                        console.log("edit");
                        console.log(editor.record.get('Id'));
                        var sm = this.mcmGridPanel.getSelectionModel();
                        App.mcmFocusMarketStore.remove(sm.getSelection());
                        if(sm.getCount()) {
                            sm.select(0);
                        }
                    }
                }
            }

        });


var addFocusMarket = function(focusmarket) {
this.mcmRowEditing.cancelEdit();
console.log("add focus market");
var record = new Sch.model.Resource({
Id: focusmarket ? focusmarket.Id : '', 
Origin: focusmarket ? focusmarket.Origin : '',
Destination: focusmarket ? focusmarket.Destination: '',
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;
};

this.mcmGridPanel = new Ext.grid.GridPanel({
            height: 240,
            width: 540,
            title: 'Results',
            store: App.mcmFocusMarketStore,
            multiSelect: true,
            x: 0,
            y: 170,
            columns: [
                { xtype: 'gridcolumn', text: 'Flight#', sortable: true, width: 100, dataIndex: 'FlightNumber', hidden: true, 
                    editor: {
                            xtype: 'textfield',
                            maxLength: 4,
                            minLength: 4,
                            maxChars: 4,
                    }
                },
                { xtype: 'gridcolumn', text: 'Origin',  sortable: true, width: 100, dataIndex: 'Origin', 
                    editor: {
                        xtype: 'textfield',
                        maxLength: 3,
                        minLength: 3,
                        maxChars: 3,
                    }
                },  
                { xtype: 'gridcolumn', text: 'Destination',  sortable: true, width: 100, dataIndex: 'Destination',
                    editor: {
                        xtype: 'textfield',
                        maxLength: 3,
                        minLength: 3,
                        maxChars: 3,
                    }
                },  
                { xtype: 'gridcolumn', text: 'Cabin',  sortable: true, width: 80, dataIndex: 'CabinClass', 
                    editor: {
                        xtype: 'textfield',
                            maxLength: 1,
                            minLength: 1,
                            maxChars: 1,
                    }
                },
                { xtype: 'datecolumn', text: 'Start Date', width: 100, dataIndex: 'StartAvailability', format: 'd/m/Y',
                    editor: {
                        xtype: 'datefield',
                        format: 'd/m/Y'
                    }
                },
                { xtype: 'datecolumn', text: 'End Date', width: 100, dataIndex: 'EndAvailability', format: 'd/m/Y', 
                    editor: {
                        xtype: 'datefield',
                        format: 'd/m/Y'
                    }
                },
                {
                    xtype: 'gridcolumn',
                    text: 'Delete?',
                    header: 'Delete?',
                    dataIndex: 'delete',
                    width: 60,
                    renderer: function (value, meta, record, rowIndex, colIndex) {
                        return '<center><input type="checkbox" id="Delete-' + rowIndex + '"/></center>';
                    },
                    listeners : 
                    {
                        checkchange : function(column, recordIndex, checked) 
                                    {
                                       this.mcmRemoveFocusMarket();
                                        //or send a request
                                    } 
                    },
                    handler: function() {
                       /* var sm = grid.getSelectionModel();
                        rowEditing.cancelEdit();
                        store.remove(sm.getSelection());
                        if (store.getCount() > 0) {
                            sm.select(0);
                        }*/
                    },
                    //disabled: true,
                    editor: {
                        xtype: 'checkbox'
                    }

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

1 ответ

0

1.) Не добавляйте записи в сетку напрямую. Добавьте данные в бэкэнд и перезагрузите хранилище сетки, чтобы показать вновь добавленные данные в сетке

2) Выравнивание должно быть исправлено с помощью контрольной колонки

3) Я не совсем уверен, что вы спрашиваете здесь. Редактирование, похоже, работает из того, что я понимаю. Вы уверены, что предоставляете данные для столбцов даты в правильном формате (дата: '2014/02/04')?

// Presuming you are using ExtJS 4...
this.mcmRowEditing = Ext.create('Ext.grid.plugin.RowEditing',
{
    clicksToEdit: 1,
    autoCancel: true,
    listeners: {
        scope: this,
        edit: function(editor, context, eOpts){
            // do your editing processing here
            // lookup api documentation for params
        }
    }
});

this.mcmGridPanel =  Ext.create('Ext.grid.Panel',
{
    height: 240,
    width: 540,
    title: 'Results',
    store: App.mcmFocusMarketStore,
    multiSelect: true,
    x: 0,
    y: 170,
    columns: [
        { xtype: 'gridcolumn', text: 'Flight#', sortable: true, width: 100, dataIndex: 'FlightNumber', hidden: true, 
            editor: {
                    xtype: 'textfield',
                    maxLength: 4,
                    minLength: 4,
                    maxChars: 4,
            }
        },
        { xtype: 'gridcolumn', text: 'Origin',  sortable: true, width: 100, dataIndex: 'Origin', 
            editor: {
                xtype: 'textfield',
                maxLength: 3,
                minLength: 3,
                maxChars: 3,
            }
        },  
        { xtype: 'gridcolumn', text: 'Destination',  sortable: true, width: 100, dataIndex: 'Destination',
            editor: {
                xtype: 'textfield',
                maxLength: 3,
                minLength: 3,
                maxChars: 3,
            }
        },  
        { xtype: 'gridcolumn', text: 'Cabin',  sortable: true, width: 80, dataIndex: 'CabinClass', 
            editor: {
                xtype: 'textfield',
                    maxLength: 1,
                    minLength: 1,
                    maxChars: 1,
            }
        },
        { xtype: 'datecolumn', text: 'Start Date', width: 100, dataIndex: 'StartAvailability', format: 'd/m/Y',
            editor: {
                xtype: 'datefield',
                format: 'd/m/Y'
            }
        },
        { xtype: 'datecolumn', text: 'End Date', width: 100, dataIndex: 'EndAvailability', format: 'd/m/Y', 
            editor: {
                xtype: 'datefield',
                format: 'd/m/Y'
            }
        },
        { xtype: 'checkcolumn', text: 'Delete?', width: 60, dataIndex: 'delete', format: 'd/m/Y', 
            // Make checkboxes of checkcolumn unchangeable. Editor can change state then.
            // Handle changes in CellEditing/RowEditing 'edit' event for consistent behavior with other columns.
            listeners: {beforecheckchange: function(column, recordIndex, checked){return false}}
            editor: {xtype: 'checkbox'},
            // checkcolumn aligns center by default use the 2 lines below instead if you want to align left
            //align: 'left',
            //editor: {xtype: 'checkbox', style: 'text-align:left; display:inline; padding-left:10px;'},
        }
    ],
    tbar: [
        {
            text: 'Add',
            tooltip: 'Add Focus Market',
            iconCls: 'icon-shift-add',
            scope: me,
            handler: function() {
                    addFocusMarket.call(me);
            }
        }
    ],
    plugins: [ this.mcmRowEditing ]
});

Ещё вопросы

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