Ext.js 4.2. Как связать кнопки с таблицей?
Доброго времени суток,друзья. Такая проблема: создал grid трехколоночный, таблица подгружается с json, каждую строку можно редактировать по двойному щелчку. Есть две кнопки: "Добавить элемент" и "Удалить элемент". По сути, задача тривиальная, но что-то никак не могу понять как это добро связать друг с другом. Что есть: при нажатии на добавление вылезает окно(window) с тремя textfield и кнопкой "save". Проблема в том, что никак не пойму какую функцию написать чтобы при нажатии на "save" в таблицу добавились введенные данные и таблица обновилась.
Выкладываю код приложения , controller и button: Приложение: Ext.application({ requires: ['Ext.container.Viewport'], name: 'fruit', appFolder: 'app', controllers: ['fruitcontrol'], launch: function() { Ext.create('Ext.container.Viewport', { layout: { type: 'vbox', align: 'stretch' }, items: [ { xtype: 'fruitview', }, { xtype: 'addbutton', }, { xtype: 'deletebutton', } ] }); } }); controller: Ext.define('fruit.controller.fruitcontrol', { extend: 'Ext.app.Controller', views: ['fruitview','fruitedit','deletebutton','addbutton'], stores: ['allfruits'], models: ['fruitmodel'], init: function() { this.control({ 'viewport > fruitview': { itemdblclick: this.editfruit }, 'fruitedit button[action=save]': { click: this.newfruits }, }); }, editfruit: function(grid, record) { var view = Ext.widget('fruitedit'); view.down('form').loadRecord(record); }, newfruits: function(button) { var win = button.up('window'), form = win.down('form'), record = form.getRecord(), values = form.getValues(); record.set(values); win.close(); this.getallfruitsStore().sync(); } } ); button: Ext.define( 'fruit.view.addbutton', { extend: 'Ext.button.Button', alias: 'widget.addbutton', title: 'Изменить фрукт', layout: 'fit', autoShow: true, text: 'Добавить фрукт', handler: function() { Ext.create('Ext.window.Window', { extend: 'Ext.window.Window' , title: 'Добавить фрукт', models: ['fruitmodel'], stores: ['allfruits'], height: 200, width: 400, layout: 'fit', autoShow: true, items: [{ xtype: 'form', items: [ { xtype: 'textfield', name: 'fruit', fieldLabel: 'Фрукт', }, { xtype: 'textfield', name: 'taste', fieldLabel: 'Вкус' }, { xtype: 'textfield', name: 'color', fieldLabel: 'Цвет' } , { text: 'Save', xtype: 'button', handler: function() { // allfruits.add( fruit: this.name , taste: this.taste , color: this.color); alert('fgfgfgg'); } } ] } ], , saves: function() { alert('dfdfdfdf'); } })}}); Заранее спасибо! |
сделайте код в песочнице
|
Не знаю, подходит для версии 4.2, но тем не менее...
В общем надо получить store и model таблицы и добавить в него record без ИД. Вот так я делаю при нажатии на кнопку добавить, возможно получиться адаптировать к своему коду: // Создается и заполняется запись модели. var rec = new JournalApp.model.StrategyModel({ //id: 0, name: 'Человек', description: 'Двуногий' }); var grid = this.getView(); // У вас по другому наверное надо получить. grid.getStore().insert(0, rec); // Тут получаем стор и вставляем в него запись модели. Без ИД, если он будет на сервере формироваться, ну или свой задать. |
Часовой пояс GMT +3, время: 03:51. |