Extjs 在单元格编辑网格中保存编辑的记录
如何在单击“保存”按钮时保存已编辑的记录 我的代码:Extjs 在单元格编辑网格中保存编辑的记录,extjs,extjs4,Extjs,Extjs4,如何在单击“保存”按钮时保存已编辑的记录 我的代码: // create the Data Store var store = Ext.create('Ext.data.Store', { //autoSync: true, autoLoad:true, autoDestroy: true, url: 'update_premise.php', model: 'Plant', proxy: { type: 'ajax',
// create the Data Store
var store = Ext.create('Ext.data.Store', {
//autoSync: true,
autoLoad:true,
autoDestroy: true,
url: 'update_premise.php',
model: 'Plant',
proxy: {
type: 'ajax',
// load remote data using HTTP
url: 'getLab.php',
// specify a XmlReader (coincides with the XML format of the returned data)
reader: {
type: 'json'
},
writer: {
type: 'json'
}
},
sorters: [{
property: 'lab_name',
direction:'ASC'
}]
});
var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
});
// create the grid and specify what field you want
// to use for the editor at each header.
var grid = Ext.create('Ext.grid.Panel', {
store: store,
columns: [{
id: 'lab_name',
header: 'Common Name',
dataIndex: 'lab_name',
flex: 1,
editor: {
allowBlank: false
}
}],
selModel: {
selType: 'cellmodel'
},
renderTo: 'editor-grid',
width: 600,
height: 300,
title: 'Lab?',
frame: true,
tbar: [
{
text: 'Save',
handler: function ()
{
for (var i = 0; i <grid.store.data.items.length; i++) {
var record = grid.store.data.items [i];
if (record.dirty) {
}
}
}
}
],
plugins: [cellEditing]
});
//创建数据存储
var store=Ext.create('Ext.data.store'{
//自动同步:对,
自动加载:对,
自动销毁:对,
url:'update_premise.php',
型号:'植物',
代理:{
键入:“ajax”,
//使用HTTP加载远程数据
url:'getLab.php',
//指定XmlReader(与返回数据的XML格式一致)
读者:{
键入:“json”
},
作者:{
键入:“json”
}
},
分拣机:[{
属性:“实验室名称”,
方向:'ASC'
}]
});
var celleediting=Ext.create('Ext.grid.plugin.celleediting'{
单击编辑:1
});
//创建网格并指定所需的字段
//用于每个标题处的编辑器。
var grid=Ext.create('Ext.grid.Panel'{
店:店,,
栏目:[{
id:'实验室名称',
标题:“公共名称”,
数据索引:“实验室名称”,
弹性:1,
编辑:{
allowBlank:false
}
}],
selModel:{
selType:'cellmodel'
},
renderTo:“编辑器网格”,
宽度:600,
身高:300,
标题:“实验室?”,
框架:对,
待定:[
{
文本:“保存”,
处理程序:函数()
{
对于(var i=0;i基本上取决于您的服务器端。如果您希望通过ajax请求进行保存,您应该使用以下内容:
Ext.Ajax.request({
url: '/Some/Save',
method: 'POST',
params: {
'RecordId': record.get('Id'),
'RecordValue': record.get('Value')
}
})
您应该在if
语句中使用上述代码:
if (record.dirty) {
//Save code
}
您还可以将所有行合并到一个大对象中,并在请求中使用它
至于cell editor插件,它是为自动保存记录而设计的。您应该使用validatedit
事件。文档如下:您不需要通过ajax调用保存sencha为您完成所有检查和保存
for (var i = 0; i <grid.store.data.items.length; i++) {
var record = grid.store.data.items [i];
if (record.dirty) {
...
}
}
你能帮我一下吗?我是ExtJS新手。你可以使用“record.set(value)”来更新单元格,其中value是你的新值。
proxy: {
type: 'ajax',
api: {
read : 'getLab.php',
create : 'setLab.php',
update : 'setLab.php',
destroy : 'deleteLab.php'
}
reader: {
type: 'json'
},
writer: {
type: 'json'
}
}