Javascript 行编辑不';不能在ExtJs中工作

Javascript 行编辑不';不能在ExtJs中工作,javascript,extjs,Javascript,Extjs,我从服务器获取列并动态存储数据,然后调用网格的方法重新配置(store,col)。每列都有自己的uniq数据索引,但行编辑无法正常工作 这样的结果是在更改数据的过程中获得的,数据仅在3列中更改,其余保留。如果选择任何其他表,则在更新后通常无法更改数据,不清楚它依赖于什么 代码片段 Ext.define('MVC.view.Main'{ show:function(){ var store=Ext.create('Ext.data.store'{ 字段:['HeadClue','Density

我从服务器获取列并动态存储数据,然后调用网格的方法重新配置(store,col)。每列都有自己的uniq数据索引,但行编辑无法正常工作

这样的结果是在更改数据的过程中获得的,数据仅在3列中更改,其余保留。如果选择任何其他表,则在更新后通常无法更改数据,不清楚它依赖于什么

代码片段

Ext.define('MVC.view.Main'{
show:function(){
var store=Ext.create('Ext.data.store'{
字段:['HeadClue','Density','errDens','MethodD','bknumber','u MethodD'],
自动加载:false,
代理:{
键入:“ajax”,
方法:“get”,
url:'rest/table/density',
读者:{
键入:“json”,
root:'数据',
totalProperty:'total'
},
paramsAsJson:true
}
});
var col=[];
var rowEditing=Ext.create('Ext.grid.plugin.rowEditing'{
单击移动编辑器:1,
自动取消:错误
});
var contentPanel=Ext.create('Ext.grid.Panel'{
标题:“аааааааа”,
地区:'中心',
店:店,,
栏目:col,
bbar:Ext.widget('pagingtoolbar'{
店:店,,
displayInfo:true,
displayMsg:'Баацц{0}-{1}of{2}'
}),
插件:[行编辑],
待定:[{
正文:“бббббббббббббббб,
处理程序:函数(){
行编辑。取消编辑();
var prev=store.data.items[0].data;
var newRow={};
for(上一页中的var属性){
if(上一个hasOwnProperty(property)){
newRow[prev[property]]=null;
}
}
store.insert(0,新行);
行编辑。启动它(0,0);
}
}, {
正文:“ббббббббббх”,
处理程序:函数(){
store.reload();
}
}, {
文本:“Сззззззззззззззз,
处理程序:函数(){}
}, {
文本:“Уазззазаззазааз,
处理程序:函数(){
var sm=contentPanel.getSelectionModel();
行编辑。取消编辑();
store.remove(sm.getSelection());
if(store.getCount()>0){
sm.选择(0);
}
}
}, '->', {
xtype:'triggerfield',
trigger1Cls:Ext.baseCSSPrefix+“表单清除触发器”,
trigger2Cls:Ext.baseCSSPrefix+“表单搜索触发器”
}]
});
var treePanel=Ext.create('Ext.tree.Panel'{
id:'树面板',
标题:',
地区:'北',
高度:“100%”,
minSize:150,
rootVisible:false,
autoScroll:是的,
根目录:{
对,,
儿童:[{
正文:“Ачччччааааа”,
叶:是的,
实体:“Acop”
}, {
正文:“ббббббббббббббббб,
叶:是的,
实体:“Sist”
}, {
正文:“戡戡戡戡戡戡戡戡戡戡”,
叶:是的,
实体:“热”
}, {
正文:“Пбббббб”,
叶:是的,
实体:“密度”
}, {
正文:“Пззэчччччччччччччччч,
叶:是的
}, {
正文:“戡戡戡戡戡戡戡戡戡戡”,
叶:是的
}, {
正文:“ааааааааааааааа1072,
叶:是的
}, {
正文:“аааааааааааааааа107,
叶:是的
}, {
文本:“аааааааааа”,
叶:是的
}, {
正文:“аааааааааааааа,
叶:是的
}, {
文本:“Паааааааачааачаачааааааа107,
叶:是的
}, {
正文:“аааааааааааааа1072,
叶:是的
}, {
正文:“戡戡戡戡戡戡戡戡戡戡戡戡戡戡戡25121,
叶:是的
}, {
正文:“аааааааааааааааааа,
叶:是的
}, {
正文:“чэчччччччччччччч109,
叶:是的
}, {
正文:“魔术师”,
叶:是的
}, {
正文:“ПППиижжжббббббббббббб,
叶:是的
}, {
正文:“ббббббббчбббббббббб,
叶:是的
}, {
正文:“Пзз”
Ext.define('MVC.view.Main', {
    show: function() {
        var store = Ext.create('Ext.data.Store', {
            fields: ['HeadClue', 'Density', 'errDens', 'MethodD', 'bknumber', '_methodD'],
            autoLoad: false,
            proxy: {
                type: 'ajax',
                method: 'get',
                url: 'rest/table/density',
                reader: {
                    type: 'json',
                    root: 'data',
                    totalProperty: 'total'
                },
                paramsAsJson: true
            }
        });

        var col = [];

        var rowEditing = Ext.create('Ext.grid.plugin.RowEditing', {
            clicksToMoveEditor: 1,
            autoCancel: false
        });

        var contentPanel = Ext.create('Ext.grid.Panel', {
            title: 'Таблица',
            region: 'center',
            store: store,
            columns: col,
            bbar: Ext.widget('pagingtoolbar', {
                store: store,
                displayInfo: true,
                displayMsg: 'Данных {0} - {1} of {2}'
            }),
            plugins: [rowEditing],
            tbar: [{
                text: 'Добавить новую запись',
                handler: function() {
                    rowEditing.cancelEdit();

                    var prev = store.data.items[0].data;
                    var newRow = {};
                    for (var property in prev) {
                        if (prev.hasOwnProperty(property)) {
                            newRow[prev[property]] = null;
                        }
                    }

                    store.insert(0, newRow);
                    rowEditing.startEdit(0, 0);
                }
            }, {
                text: 'Обновить данные',
                handler: function() {
                    store.reload();
                }
            }, {
                text: 'Сохранить изменения',
                handler: function() {}
            }, {
                text: 'Удалить запись',
                handler: function() {
                    var sm = contentPanel.getSelectionModel();
                    rowEditing.cancelEdit();
                    store.remove(sm.getSelection());
                    if (store.getCount() > 0) {
                        sm.select(0);
                    }
                }
            }, '->', {
                xtype: 'triggerfield',
                trigger1Cls: Ext.baseCSSPrefix + 'form-clear-trigger',
                trigger2Cls: Ext.baseCSSPrefix + 'form-search-trigger'
            }]
        });

        var treePanel = Ext.create('Ext.tree.Panel', {
            id: 'tree-panel',
            title: 'Категории базы данных',
            region: 'north',
            height: '100%',
            minSize: 150,
            rootVisible: false,
            autoScroll: true,
            root: {
                expanded: true,
                children: [{
                    text: "Акустооптические свойства",
                    leaf: true,
                    entity: 'Acop'
                }, {
                    text: "Область гомогенности соединения",
                    leaf: true,
                    entity: 'Sist'
                }, {
                    text: "Теплоемкость",
                    leaf: true,
                    entity: 'Heat'
                }, {
                    text: "Плотность",
                    leaf: true,
                    entity: 'Density'
                }, {
                    text: "Пьезоэлектрические коэффициенты",
                    leaf: true
                }, {
                    text: "Твердость",
                    leaf: true
                }, {
                    text: "Растворимость",
                    leaf: true
                }, {
                    text: "Температура плавления",
                    leaf: true
                }, {
                    text: "Температура Кюри",
                    leaf: true
                }, {
                    text: "Данные по полиморфным модификациям",
                    leaf: true
                }, {
                    text: "Параметры элементарной ячейки",
                    leaf: true
                }, {
                    text: "Тепловое расширение",
                    leaf: true
                }, {
                    text: "Теплопроводность",
                    leaf: true
                }, {
                    text: "Диэлектрическая проницаемость",
                    leaf: true
                }, {
                    text: "Диэлектрические потери",
                    leaf: true
                }, {
                    text: "Коэффициенты электромеханической связи",
                    leaf: true
                }, {
                    text: "Упругие жесткости (податливости)",
                    leaf: true
                }, {
                    text: "Область оптической прозрачности",
                    leaf: true
                }, {
                    text: "Показатели преломления",
                    leaf: true
                }, {
                    text: "Коэффициенты Селмейера",
                    leaf: true
                }, {
                    text: "Электрооптические коэффициенты",
                    leaf: true
                }, {
                    text: "Нелинейно-оптические коэффициенты",
                    leaf: true
                }, {
                    text: "Компоненты тензора Миллера",
                    leaf: true
                }, {
                    text: "Упруго(пьезо)оптические коэффициенты",
                    leaf: true
                }, {
                    text: "Коэффициенты затухания упругих волн",
                    leaf: true
                }, {
                    text: "Подписи к рисункам",
                    leaf: true
                }]
            }
        });

        treePanel.getSelectionModel().on('select', function(selModel, record) {
            if (record.get('leaf')) {
                Ext.Ajax.request({
                    url: 'rest/table/columns',
                    params: {
                        entity: record.get('entity')
                    },
                    method: 'GET',
                    success: function(response) {
                        col = JSON.parse(response.responseText);
                        col.forEach(function(item) {
                            item.editor = {
                                allowBlank: true
                            }
                        });
                        store.proxy.url = 'rest/table/';
                        store.on('load', function(st) {
                            contentPanel.reconfigure(store, col);
                        });
                        store.load({
                            params: {
                                entity: record.get('entity')
                            }
                        });
                    }
                });
            }
        });

        var viewport = Ext.create('Ext.Viewport', {
            layout: 'border',
            title: ' Панель работы с БД',
            style: 'background: #efefe8',
            items: [{
                    xtype: 'box',
                    id: 'header',
                    region: 'north',
                    html: '<h1> Панель работы с БД</h1>',
                    height: 50
                }, {
                    layout: 'border',
                    id: 'layout-browser',
                    region: 'west',
                    border: false,
                    split: true,
                    margins: '2 0 5 5',
                    width: 290,
                    minSize: 100,
                    maxSize: 500,
                    items: [treePanel]
                },
                contentPanel
            ],
            renderTo: Ext.getBody()
        });

        viewport.show();
    }
});