Показать сообщение отдельно
  #1 (permalink)  
Старый 14.08.2014, 18:34
Интересующийся
Отправить личное сообщение для maksimka2112 Посмотреть профиль Найти все сообщения от maksimka2112
 
Регистрация: 07.08.2014
Сообщений: 25

editorGridPanel, метод save() и ответ с сервера
ИСПОЛЬЗУЮ EXT 3

Задаю ридер:
var leftReader = new Ext.data.JsonReader({
    root: 'dan',
    totalProperty: 'total'
	}, [
            {name: 'x80402'},
            {name: 'x375'},
	    {name: 'p70402'},
            {name: 'ch23'}
	]
);


Задаю сторе:
var wr=new Ext.data.JsonWriter
({
    encode: true,
    writeAllFields: true
});

var lStore = new Ext.data.Store({
    autoDestroy: true,
    autoSave: false,
    successProperty: true,
    proxy: new Ext.data.HttpProxy({url: 'phps/mm160c07_t.php'}),
    baseParams: {c155: c155, priznak: 'left'},
    reader: leftReader,
    writer: wr,
    sortInfo:{field: 'x80402', direction: "ASC"},
    autoLoad: true,
    batchSave: true // ДЛЯ ЧЕГО ЭТА КОМАНДА????
});


Задаю чекбоксы:

var checkboxLeft = new Ext.grid.CheckboxSelectionModel({
    singleSelect: false
});


Далее модель колонок, многие из которых можно редактировать:
var leftCm = new Ext.grid.ColumnModel({
    defaults: {
        sortable: true, menuDisabled: false,
	align: 'center'
    },
    columns: [
        checkboxLeft,
        {header: "№ п/п ",  dataIndex: 'x80402', sortable: true, width: 45},
	{header: "Должность", dataIndex: 'ch23', sortable: true, width: 200},
	{header: "Фамилия И.О.", dataIndex: 'p70402', sortable: true, width: 200,
        editor:  new fm.ComboBox({
                name: 'c07p70402',
                fieldLabel: 'ФИО',
                store: mainStorec07,
                displayField: 'p70402',
                typeAhead: false,
                loadingText: 'Поиск...',
                emptyText: 'Введите ФИО',
                minChars: 3,
                anchor: '95%',
                pageSize: 5,
                triggerAction: 'all',
                hideTrigger: true,
                tpl: movieTpl,
                itemSelector: 'div.movie-item',
                onSelect: function(record){
                    this.setValue(record.data.getFio);

                    var zam=Ext.getCmp('id_leftgrid').selModel.getSelections()

                    var myst = Ext.getCmp('id_leftgrid').getStore();
                        var zzz=myst.getCount();
                        for (var zil=0; zil<zzz; zil++){
                            zInd=myst.find('ch23',myst.data.items[zil].data.ch23,0,false,false);
                            row = myst.getAt(zInd).data;
                            row.ch23=record.data.x745;
                        }

                    this.collapse();
                }
                })
        },
	{header: "Дата подписи", dataIndex: 'x375', sortable: true, width: 100,
        renderer: getDateFont,
        editor: new fm.DateField({
                allowBlank: true, type: 'date',format: 'd.m.Y'
                })
        }
    ]
});


Непосредственно сам грид:
var leftGrid = new Ext.grid.EditorGridPanel({
    id: 'id_leftgrid',
    store: lStore,
    enableHdMenu: false,
    height: 190,
    autoWidth: true,
    cm: leftCm,
    sm: checkboxLeft,
    clicksToEdit: '1'
});


И привожу код кнопки, по клику на которую сохраняю:
id: 'c07Save',
            xtype: 'tbbutton',
            text: '<b>Cохранить</b>',
            handler: function(sm){
                leftGrid.store.save({
                    listeners: { beforesave: {fn: function(){
                        alert(9999);
			var success=Ext.util.JSON.decode(resp.responseText).success;
			var message=Ext.util.JSON.decode(resp.responseText).message;
			if (success){
			    Ext.Msg.alert('С О О Б Щ Е Н И Е ',message);
			    }else Ext.Msg.alert('О Ш И Б К А',message);
		    }
                    }}
                    }); 
            }

С сервера приходит ответ - success и message - я их сам формирую. Вопрос в том - как мне ответ поймать?? listeners не работает! Как же получить ответ с сервера об удачном сохранении?

И второй вопрос - как передать для сохранения строки ТОЛЬКО отмеченные чекбоксами? При этом используя leftGrid.store.save() ????
Ответить с цитированием