Доброго времени суток,друзья. Такая проблема: создал 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');
}
})}});
Заранее спасибо!