extjs网格发布数据轨道

时间:2011-04-08 10:23:54

标签: ruby-on-rails extjs grid

我正在尝试将Ext JS Grid数据发布到数据库中...是否有任何教程指导我将整个网格发布到服务器?请帮助..

2 个答案:

答案 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