Javascript 行编辑不';不能在ExtJs中工作
我从服务器获取列并动态存储数据,然后调用网格的方法重新配置(store,col)。每列都有自己的uniq数据索引,但行编辑无法正常工作 这样的结果是在更改数据的过程中获得的,数据仅在3列中更改,其余保留。如果选择任何其他表,则在更新后通常无法更改数据,不清楚它依赖于什么 代码片段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
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();
}
});