我在ExtJS中有一個可編輯的網格。我從json文件獲取數據,並試圖在編輯後將其保存回來。編輯完成後,我點擊保存並調用Store.sync(),但它不會更改JSON文件,並且網格會刷新回到編輯前的狀態。我是ExtJS的新手。我在這裏錯過了什麼,如何使它工作?如何在ExtJS中將可編輯網格中的數據保存在json文件中並使用更改來刷新網格?
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{name: 'Pricelist', type: 'string'},
{name: 'Productfamily', type:'string'},
{name: 'Producttype', type:'string'},
{name: 'Productsubgroup', type: 'string'},
{name: 'Item', type: 'string'},
{name: 'Level', type: 'string'},
{name: 'Factor', type:'string'},
{name: 'Factorvalue', type: 'string'},
{name: 'Effstrtdate', type: 'string'},
{name: 'Effenddate', type: 'string'},
{name: 'Comments', type: 'string'}
]
});
var userStore = Ext.create('Ext.data.JsonStore', {
model: 'User',
proxy: {
type: 'ajax',
url: '/pwbench/form/products/fctrmgmt/data.json',
api: {
read: '/pwbench/form/products/fctrmgmt/data.json',
update: '/pwbench/form/products/fctrmgmt/data.json'
},
reader: {
type: 'json',
}
},
autoLoad: true
});
var grid = Ext.create('Ext.grid.Panel', {
renderTo: Ext.getBody(),
store: userStore,
title: 'Application Users',
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})
],
columns: [....
],
tbar: [
{
text: 'Save',
handler: function() {
userStore.sync();
userStore.load();
}
}
],
});
Ext.application({
requires: ['Ext.container.Viewport'],
name: 'ExtGrid',
launch: function() {
Ext.create('Ext.container.Viewport', {
items: grid,
width: 800,
height: 600
});
}
});
在網格中進行更改後,我可以使用getUpdatedRecords獲取更新的記錄,但是如何保存它們? – 2013-05-14 08:50:32
在代理配置中安裝編寫器。請參閱[官方示例](http://docs.sencha.com/extjs/4.2.0/extjs-build/examples/writer/writer.html) – 2013-05-14 09:20:05
我是否僅在代理配置中包含以下內容? 作家{ 類型:'json' } 我加了這個,但是沒有工作。我還需要添加什麼? – 2013-05-14 09:26:25