ExtJs 3.4: получить все записи из сетки и передать их в сервлет

У меня есть хранилище сетки, и я хочу получить все записи из этой сетки и поместить их в массив. А также я хочу передать этот массив данных сервлету, чтобы сохранить их в базе данных. Вот моя попытка.

var tourData = plannedGridStore.getRange();
var gridData = new Array();
tourData.each(function (record) {
    gridData.push(record.data);
});

Но моя консоль Firebug говорит

.each(function (record) { is not a function

Я использую ExtJs 3.4. Что не так с моим кодом?

А также мне нужно знать, как передать массив gridData сервлету.

пожалуйста, помогите мне

ура

2 ответа

Решение

Ext.data.StoregetRange метод возвращает массив записей. Для повторения этого массива вы можете использовать Ext.each() метод:

Ext.each(tourData, function (record) {
    gridData.push(record.data);
});

Для отправки данных массива на сервер вы можете использовать Ext.Ajax.request метод. Вы не можете передать массив в качестве параметра запроса, поэтому сначала вам нужно закодировать его в JSON с помощью Ext.util.JSON.encode() метод.

Ext.Ajax.request({
    url: 'YOUR_URL',
    params: { 
       gridData: Ext.util.JSON.encode(gridData)
    }
});

Если вы используете POST, вы можете сделать что-то довольно лаконичное, например:

Ext.Ajax.request({
    url: 'url',
    jsonData: Ext.pluck(store.getRange(), 'data')
});
Другие вопросы по тегам