как получить массив объектов из хранилища в extjs 4.2 и отправить его на сервер?

Привет всем, я использую сетку данных Extjs 4.2, и у меня есть требование преобразовать мой «магазин» в массив json и отправить его на сервер (т.е. java).

Это моя модель.

Ext.define('Writer.Document',{
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'notes', 'Type', 'date']
});

и мой магазин (который содержит список объектов)

var store = Ext.create('Ext.data.Store', {
model: 'Writer.Document',
autoLoad: true,
proxy: {
    type: 'ajax',            
    url : 'findPatientRecordAction',
    reader: {
        type: 'json',
        successProperty: 'success',
        root: 'prognosis',
        messageProperty: 'message'
    }                       
    fields: ['id','name', 'date', 'notes' , 'Type'],
},
});

Поэтому, отправляя значения в сетку за раз, мне требуется объект ist на моей стороне сервера. Поэтому мне нужно отправить массив JSON со стороны клиента.

Может ли кто-нибудь помочь мне здесь, как сделать объект JSONArray из моего магазина и отправить на сервер???

С уважением:Разработчик


person Deba    schedule 03.05.2013    source источник


Ответы (1)


Вот простой пример того, как сделать то, что вы хотите:

function sendGridData(){

    var sendDataArray = [];
    store.each(function(record){
        var recordArray = [
            record.get("id"),
            record.get("name"),
            record.get("date"),
            record.get("notes"),
            record.get("Type")
        ];
        sendDataArray.push(recordArray);
    });

    Ext.Ajax.request({
        url: "your_url_here.jsp",
        success: function(response, opts){
            //?
        },
        failure: function(response, opts) {
            alert("server-side failure with status code " + response.status);
        },
        params: {
            grid_data: Ext.encode(sendDataArray);
        }
    });
}
person Reimius    schedule 03.05.2013