我正在尝试将Ext JS Grid数据发布到数据库中...是否有任何教程指导我将整个网格发布到服务器?请帮助..
答案 0 :(得分:2)
我建议在你的网格中遍历商店并将数据添加到数组或对象中,然后用ajax发布。
你可以得到这样的数据:
var resultArray = [];
for (var i=0; i < yourGridObject.store.data.items.length; i++)
{
resultArray.push(this.store.data.items[i].data.columnName1);
}
然后用ajax发布
var conn = new Ext.data.Connection();
conn.request({
url: 'foo.php',
method: 'POST',
success: successCallBack,
failure: failureCallback,
params: { gridData: resultArray.join(',') }
});
答案 1 :(得分:0)
实际上解决方案并不那么难(我做的那个)。
假设您有一个模型并希望网格项成为此模型的一部分。
1确保模型具有“ ajax ”类型的代理(不是休息)
2在此代理中使用以下编写器
writer: new Ext.data.JsonWriter({
encode: false,
writeAllFields: true,
listful: true,
root: 'data' //optional
})
3遍历网格以创建数组
var itemsArr = [];
myGrid.each(function( record ){
itemsArr.push( record.data );
});
4创建模型实例并链接网格项
var model = Ext.ModelManager.create({
Name : 'Deckard Cain',
Address : 'Tristram',
myItems : itemsArr //The model contains this item (since hasMany don't work for nested store writer submit)
}, 'MyModel');
5保存(使用模型实例)
model.save();
// This will send to the server an ajax request {"data":{"Name":"Deckard Cain","Address":"Tristram","myItems":[{"gridId":1,"gridItemName":"name2"},{"gridId":2,"gridItemName":"name2"}]}}
我也发布了这个解决方案:
http://www.sencha.com/forum/showthread.php?124362-Nested-loading-nested-saving-in-new-data-package