我有商店网格,我将记录添加到商店,添加到商店的数据会反映在网格上。但刷新后它就会消失。
这是我插入记录的代码
handler: function() {
grid.getStore().insert(
0,
new ds_model({
id:0,
name:'',
dob:''
})
);
grid.startEditing(0,0);
grid.store.commitChanges();
}
})
修改
var store = new Ext.data.Store({
data: [
[ 11849,'ABC','29/03/90'],
[ 11456,'CDE','17/03/90'],
[ 11344,'EFG','17/07/90'],
[ 11343,'IJK','Trainee','02/06/90'],
...
答案 0 :(得分:1)
您还需要结束编辑,否则商店无法进行任何更改。使用firebug检查,你的商店正在储蓄。您也可以使用自动保存:TRUE来保存提交
答案 1 :(得分:1)
根据您在初始问题中的评论,您按如下方式定义了商店:
new Ext.data.Store({
data: [
[ 11849,'ABC','29/03/90'],
[ 11456,'CDE','17/03/90'],
[ 11344,'EFG','17/07/90'],
[ 11343,'IJK','Trainee','02/06/90']
]
});
这不会为任何后端服务器设置任何自动持久性。此外,您正在将数据硬编码到商店中,这意味着当您重新加载时,您每次都会将这些数据放入商店。为了便于在后端保存和加载,您只需要修改它:
new Ext.data.Store({
autoSync: true, // this will tell Ext to persist your changes
// to the backend when you change an entry in the store
autoLoad: true, // this will tell Ext to load the store with data from
// the backend
url: // put your url to save
});
另请注意,您需要一个可以接听来电的网址。这很可能是一个php文件。根据你在网格中插入的内容,你需要在php文件中使用这样的东西:
myFile.php
==========
<?php
$id = $_POST['id']; // get id from client
$name = $_POST['name']; // get name from client
$dob = $_POST['dob']; // get date of birth from client
// do any saving of this data, e.g, to your database here
?>
另外,你需要一个可以加载商店的php文件。